Диаграммы отношений сущностей

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

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

  1. User
  2. Location

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

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

Правильно ли сказать, что теперь у меня есть 3 объекта?

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

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

person Ben Aston    schedule 19.04.2010    source источник


Ответы (2)


Вам не нужна третья сущность.

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

  • Пользователь объекта имеет список местоположений.
  • Объект Location имеет список пользователей.

В реляционном мире это моделируется следующим образом:

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

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

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

person Markos Fragkakis    schedule 28.07.2010

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

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

Объект 1 ‹> Объект 2

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

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

Объект 1 > Объект 3 ‹ Объект 2

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

person Wes Price    schedule 02.08.2010