Диаграмма отношений сущностей - PullRequest
0 голосов
/ 19 апреля 2010

Я хотел бы улучшить мое понимание ограничений мощности в диаграммах ER.

У меня есть две сущности:

  1. User
  2. Location

Но я хочу, чтобы отношения между этими двумя объектами были многие-ко-многим (пользователь может находиться во многих местах, а в местоположении может быть много пользователей).

Для этого мне нужно ввести ассоциативный класс UserLocation.

Правильно ли говорить, что у меня теперь есть 3 сущности?

Если бы я нарисовал ER-диаграмму из вышеперечисленного, я бы нарисовал сущность UserLocation, и кардинальность выглядела бы так?

User 1 ------ * User Location *  ------ 1 Location

Ответы [ 2 ]

1 голос
/ 02 августа 2010

Все зависит от типа и уровня сопоставления прав, которое вы делаете.

Вы можете выразить отношения как есть

Сущность 1 <> Сущность 2

Например, использовать «Ноги ворон» для представления множества отношений.

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

Сущность 1> Сущность 3 <Сущность 2 </p>

Где Entity 3 (ваша промежуточная таблица) будет содержать PK для обеих таблиц и иногда любые другие данные, такие как уникальный идентификатор и т. Д.

1 голос
/ 28 июля 2010

Вам не нужно третье лицо.

В мире сущностей это моделируется так:

  • Сущность Пользователь имеет список местоположений.
  • У сущности Location есть список пользователей.

В Реляционном мире это моделируется так:

  • Таблица USER, с первичным ключом USER_ID
  • Таблица LOCATION, с первичным ключом LOCATION_ID
  • Таблица USER_LOCATION с двумя внешними ключами, по одному для каждой из приведенных выше таблиц.

Я считаю, что в Реляционной диаграмме "посредник" не виден. Итак, я думаю, вам нужно что-то вроде этого:

Пользователь * ------- * Местоположение

...