Как смоделировать родительского пользователя - PullRequest
0 голосов
/ 10 июня 2011

В настоящее время у нас есть объект (Пользователь), который используется для хранения учащегося, учителя или родителя.

User { firstName not null, lastName not null, gender, firstName2, lastName2 }

Student John is represented as ("John", "Williams", "M", null, null)
Teacher Patrick is represented as ("Patrick", "Gold", "M", null, null)
Parent Josh / Cindy of student John is represented as ("Josh", "Mason", "M", "Cindy", "Crawford")

Мы не можем смоделировать вариант использования, в котором у студента нет отца. Как мы должны смоделировать это?

Ответы [ 2 ]

3 голосов
/ 10 июня 2011

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

Мой совет: распутать информацию о личности из информации о ролях и отношениях.Используйте отдельные таблицы для каждой - одну для идентификации, одну для ролей (если необходимо) и одну для отношений.

Кроме того, подумайте, может ли учитель также быть родителем и может ли ученик стать родителем,(И то, и другое возможно в реальном мире.)

0 голосов
/ 10 июня 2011

Вы можете сделать таблицу пользователей с

  • id (INT)
  • user_name (CHAR)
  • parent_id (INT - FK to id, NULL)
  • роль (ENUM («родитель», «ученик», «учитель»)) // является независимой

Все ученики, учителя и родители являются пользователями.Ссылка Parent_id создает связь между учеником и родителем.Вы можете даже создать внешний ключ для той же таблицы от parent_id до id, но с NULL по умолчанию, поэтому студент может существовать без отца.

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