sql - 我将如何将数据插入到一对多(必须)关系中,PostgreSQL 中的 psycopg2/python
问题描述
使用 psycopg2/python 如果我有来自这个 img 的类似内容,我将如何插入数据。
GRUPA(GROUP 类)必须包含一个或多个 STUDENT
如何填写它们以及之后如何添加它们,我无法添加没有学生的 GROUP,也无法添加没有 GROUP 的 STUDENT。
是否必须是事务/可延迟约束才能批量/一起添加它们以创建 GROUP?
我有什么选择,你会怎么做?
谢谢。
解决方案
我不知道为什么你id_group
的students
桌子上有一个。这真的没有意义。
但如果你这样做,让它可以为空。那么你也能:
- 将一个学生添加到表中,其
null
值为id_group
。 - 与学生一起添加一个组。
- 使用该组的值更新学生表。
但是,您可能还想放宽您的要求。例如,也许一个小组可能没有学生。它不会是一个非常活跃的团体,但该团体可以作为一个单独的实体存在。
事实上,表示这些数据的更自然的方式是:
- 一张
students
表,每个学生一行,没有小组参考。 groups
每组一行,没有学生参考的表格。- 一张
studentGroups
桌子,每组每名学生一排。
推荐阅读
- scripting - Dymola mos 脚本:获取当前目录
- javascript - 如何解决父效应子事件的防止事件
- javascript - beforeEach fetch() - 将 res 传递给 'it' 函数
- angular - 使用 Puppeteer SSR for Angular 时闪烁
- python - 当 URL 中没有斜杠时,带有 VueJS 单页的 Django 路由会出现意外行为
- javascript - 如何从导航栏悬停 HTML CSS 中调暗正文?
- arrays - 如何加入每 8 项数组并创建 1 项?
- sql-server - 在 SQL Server 中加载大文本文件
- android - 带有自定义高亮图形的 BottomNavigationBar
- postgresql - PostgreSQL:如何从 XML 中提取值属性