Как бы я вставил данные в отношение «один ко многим» (обязательно), psycopg2 / python в PostgreSQL - PullRequest
0 голосов
/ 06 января 2019

Как использовать psycopg2 / python для вставки данных, если бы у меня было что-то похожее на это изображение.

GRUPA (класс GROUP) должен содержать один или несколько СТУДЕНТОВ

Как их заполнить и как добавить после того, как я не могу добавить ГРУППУ без студента, и я не могу добавить СТУДЕНТА без ГРУППЫ.

Должно ли это быть транзакция / отложенные ограничения, чтобы добавить их в пакетном режиме / вместе просто для создания GROUP?

Какие у меня есть варианты, как бы вы это сделали?

Спасибо.

enter image description here

1 Ответ

0 голосов
/ 06 января 2019

Я не уверен, почему у вас есть id_group в таблице students. Это на самом деле не имеет смысла.

Но если вы это сделаете, сделайте его недействительным. Тогда вы можете:

  • Добавьте ученика в таблицу со значением null для id_group.
  • Добавьте группу со студентом.
  • Обновите таблицу студентов значением группы.

Однако вы также можете ослабить свои требования. Например, возможно, в группе не может быть учеников. Это не будет очень активная группа, но группа может существовать как отдельная сущность.

Фактически, более естественным способом представления этих данных будет:

  • A students таблица с одной строкой на каждого учащегося и без ссылки на группу.
  • A groups таблица с одной строкой на группу и без ссылки на студента.
  • A studentGroups таблица с одной строкой на каждого учащегося в каждой группе.
...