Структура базы данных: создание таблицы Person для ссылки на другие таблицы - PullRequest
0 голосов
/ 12 ноября 2011

У меня есть вопрос о создании сущностей, который специфичен для информационной системы студента, которую я создаю.Я создал таблицу Person (id ..), и я пытаюсь выяснить, как я могу справиться со своими учениками, родительскими ссылками.Это хорошая идея, чтобы создать две отдельные таблицы (ученик, родитель), которые ссылаются на таблицу Person по отношениям FK?Все подробности о персоне (имя, фамилия, SSN ...) были заданы в таблице персон, но между родителем и учеником есть различия, как вы справляетесь с этим в базе данных?

Ответы [ 3 ]

0 голосов
/ 12 ноября 2011

Я согласен с Кейси Робинсоном в том, что это чистое решение.

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

Создайте таблицу (studentParent), которая будет иметь два столбца (student_id и parent_id) и оба внешних ключа. StudentParent.student_id = Person.id ученика и studentParent.parent_id = Person.id родителя.

Таким образом, вам не нужно менять таблицу Person. И сможет создать родительские, студенческие отношения.

0 голосов
/ 12 ноября 2011

Не зная больше деталей, кажется, что двух таблиц Person и Student должно быть достаточно. В таблице Student есть два столбца, такие как Student_id и Parent_id, каждый из которых представляет собой FK to person_id в таблице Person. Это предполагает, что вам нужно будет знать только для ученика, который является родителем, а не для каждого человека. Также предполагается, что и ученик, и родитель - это человек.

0 голосов
/ 12 ноября 2011

Поскольку между родителями и учениками существуют фундаментальные различия, предпочтительнее использовать две таблицы.Таким образом, вы можете легко создать связь, соединяющую учеников и родителей.

Другой вариант - использовать пустые значения в столбцах, которые не применяются для данной записи.Однако будет сложнее обеспечить, чтобы отношения всегда связывали ученика и родителя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...