Re[3]: и еще один вопрос по реляционной структуре
От: Sinclair Россия https://github.com/evilguest/
Дата: 11.11.24 03:45
Оценка: 26 (1)
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>То есть когда студент становится студентом вне группы, Student.GroupID ставится в NULL ? А что тогда получится с первым FK ?

Ничего особенного. Если один из компонентов FK null, то он не проверяется.
Я же дал ссылку — нажмите на неё.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: и еще один вопрос по реляционной структуре
От: Pavel Dvorkin Россия  
Дата: 11.11.24 13:23
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>То есть когда студент становится студентом вне группы, Student.GroupID ставится в NULL ? А что тогда получится с первым FK ?

S>Ничего особенного. Если один из компонентов FK null, то он не проверяется.
S>Я же дал ссылку — нажмите на неё.

Ссылка у меня что-то не открывается. Точнее, заголовок появляется и все.

Но ладно, поверю и так.
With best regards
Pavel Dvorkin
Re: и еще один вопрос по реляционной структуре
От: _FRED_ Черногория
Дата: 14.11.24 16:21
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Есть факультеты. Таблица faculty с FK (или без него, как хотите) на institute

PD>На факультете есть группы. Таблица `group` с FK на faculty.
PD>А еще есть студенты. Таблица student и вот тут вопрос
PD>Студент входит в группу, но ей не принадлежит. После приказа ректора о зачислении он на короткое время становится студентом вне группы, пока его в группу декан не определит. Если уйдет в академотпуск, то до возвращения из него будет опять студентом вне группы.

PD>В итоге у студента должно быть 2 FK — на группу и факультет. Но группа имеет FK на факультет. Получается, что студент фактически имеет 2 FK на факультет — один явно, а другой косвенно, через свой FK на группу и FK группы на факультет.

Как вариант: иметь у студента и ссылку на факультет и ссылку на группу, обе NULL-абельные и CHECK constraint что только одна из них может иметь значение и хотя бы одна из них должна иметь значение.
Как будет лучше, или так или с помощью "специальной" группы, как предложили выше, можно понять с помощью запросов, которые нужно будет составлять.
Help will always be given at Hogwarts to those who ask for it.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.