Итак, я прочитал здесь много ответов на stackoverflow, но я все еще смущен всей концепцией этого. В частности, я перешел к этой статье (включая все, на что она ссылается), но, похоже, не может найти надежного понимания концепции (или, возможно, это моя путаница между мощностью (n: m и т.д.) И тождествами ):
Все еще запутано в определении неиндексирующих отношений
Моя проблема такова: я знаю, что идентификация отношений подразумевает, что первичный ключ дочернего объекта должен включать в себя его внешний ключ, и что противоположное верно для неидентифицирующих отношений (это правильно?). Теперь это кажется слишком "передовым мышлением" для меня? То же самое было сказано в одном из комментариев в одной из ссылок. Как я могу "сделать шаг назад" и фактически увидеть , какие отношения имеют личность?
Например, у меня есть две дилеммы:
-
job_title
(parent, 1) -employee
(child, 1.. *). Правильно ли я считаю, что job_title - это таблица поиска, это должно быть не идентифицирующее отношение? Или было бы более точным сказать, что "сотрудник не может существовать без job_title, поэтому он должен идентифицировать"? Или это будет отношение, определяющее этот сценарий? -
employee
доemployee_equipment
(соединяющий объект между мощностью m: n) доequipment
. Теперь я читал, что это должно быть идентифицирующее отношение по обе стороны от employee_equipment. Но что, если сотрудник не нуждается в оборудовании? Можно ли иметь необязательную идентификационную связь?
Я предполагаю, что я действительно ищу способ определить, к каким идентификационным таблицам следует относиться, не думая о первичных/внешних ключах, или о чем-либо действительно техническом, если на то пошло.
Любая помощь будет очень признательна!