EER - идентифицирующие и неидентифицирующие отношения в примере - PullRequest
0 голосов
/ 04 мая 2011

Если у меня есть три таблицы, одна для users, одна для activationLink и одна для location.

-Отношение между users и activationLink является идентифицирующим отношением, поскольку конкретное activationLink существует, только если пользователь зарегистрирован в системе.

-Но связь между users и location не является идентифицирующей, поскольку location существует без users.

-А если существует таблица с именем users и другие, называемые worker и student, worker и student могут существовать без users? такое неидентифицирующее отношение?

моя логика верна в трех пунктах?

спасибо.

Ответы [ 2 ]

2 голосов
/ 04 мая 2011

(1) Связь между пользователем и ActivationLink не совсем ясна, как представлено.

  • ActivationLink должен иметь пользователя (т.е. иметь отношение к одному и только одному пользователю)
  • Однако, сколько ActivationLinks может иметь пользователь? Ноль, Один, Ноль или несколько, Один или несколько?

Вероятно, это идентифицирующие отношения, но я бы хотел узнать немного больше, прежде чем приступить к ним.

(2) Верно. Пользователи и местоположения являются (как вы описали здесь) отдельными объектами.

(3) Основываясь исключительно на типичных значениях, полученных из используемых слов, можно предположить, что «пользователь может быть учеником или рабочим», поэтому они звучат как подтипы ... но это не может быть доказано или опровергнуто имеющейся информацией. Следующие вопросы:

  • Могут ли быть студентами или работниками, которые не являются пользователями?
  • Должен ли пользователь быть студентом или рабочим?
  • Может ли пользователь быть и учеником, и работником?
  • В качестве альтернативы, если нет, что такое Пользователь? Существует ли третья (или четвертая, или пятая, или ...) таблица, указывающая, что это за тип или тип пользователя?
0 голосов
/ 04 мая 2011

"- Отношение между пользователями и ActivLink является идентифицирующим отношением, поскольку конкретная ActivationLink существует, только если пользователь зарегистрирован в системе."

Hmmmmmmmmmmmm. Таким образом, определение заключается в том, что отношение между x и Y является «идентифицирующим», если Y не может существовать «без X»?

Это не совсем то, что я помню, когда меня учили. Мне кажется, мне сказали, что отношение «идентифицирует», если само отношение является (обязательно?) Частью ключа / идентификатора («дочернего» объекта). То есть атрибуты логического ключа / идентификатора родительского объекта также являются частью логического ключа / идентификатора дочернего объекта. Это так в вашем примере? Являются ли ссылки активации не уникальными сами по себе? Могут ли несколько разных пользователей «делиться» одной и той же ссылкой активации? Звучит странно.

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

...