Вопрос

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

У меня есть два объекта:

  1. User
  2. Location

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

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

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

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

User 1 ------ * User Location *  ------ 1 Location
Это было полезно?

Решение

Вам не нужен третий объект.

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

  • У пользователя Entity есть список местоположений.
  • Местоположение объекта имеет список пользователей.

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

  • Пользователь стола с первичным ключом user_id
  • Расположение таблицы, с первичным ключом location_id
  • Таблица user_location, с двумя внешними ключами, один на каждый из вышеперечисленных таблиц.

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

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

Другие советы

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

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

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

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

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

Сущность 1> Сущность 3 <Предприятие 2

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top