首页 > 解决方案 > 我将如何将数据插入到一对多(必须)关系中,PostgreSQL 中的 psycopg2/python

问题描述

使用 psycopg2/python 如果我有来自这个 img 的类似内容,我将如何插入数据。

GRUPA(GROUP 类)必须包含一个或多个 STUDENT

如何填写它们以及之后如何添加它们,我无法添加没有学生的 GROUP,也无法添加没有 GROUP 的 STUDENT。

是否必须是事务/可延迟约束才能批量/一起添加它们以创建 GROUP?

我有什么选择,你会怎么做?

谢谢。

在此处输入图像描述

标签: sqlpostgresqlrelational-databaseentity-relationshippsycopg2

解决方案


我不知道为什么你id_groupstudents桌子上有一个。这真的没有意义。

但如果你这样做,让它可以为空。那么你也能:

  • 将一个学生添加到表中,其null值为id_group
  • 与学生一起添加一个组。
  • 使用该组的值更新学生表。

但是,您可能还想放宽您的要求。例如,也许一个小组可能没有学生。它不会是一个非常活跃的团体,但该团体可以作为一个单独的实体存在。

事实上,表示这些数据的更自然的方式是:

  • 一张students表,每个学生一行,没有小组参考。
  • groups每组一行,没有学生参考的表格。
  • 一张studentGroups桌子,每组每名学生一排。

推荐阅读