Может ли сводная таблица быть сильной сущностью? Как мне создать базу данных? - PullRequest
0 голосов
/ 28 января 2020

У меня много сущностей для моей системы. Некоторые отношения сущностей мне очень понятны, но в какой-то момент я запутался. Теперь у меня есть Business, Service и Pack сущности. Бизнес-объект может быть связан с более чем одним Сервисом, а сервисный объект может быть связан с более чем одним Бизнесом. Таким образом, эти отношения многие ко многим. И бизнес-объект может быть связан с более чем одним пакетом, но объект пакета может подключаться только к бизнес-объекту. Так что это отношение один ко многим. Объект Pack может быть связан с более чем одним объектом Service. Объект службы может быть связан с более чем одним объектом пакета.

Похоже,

Business(m) to Service (n)
Business(1) to Pack(m)
Service(n) to Pack(m) 

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

Например, сценарий:

Business Table   Services Table   Pack Table
--------------   --------------   ------------
ID Name ..       ID Name          ID Name BusinessId(FK)
1  XBusiness     1  AService      1  TPack 1
2  YBusiness     2  BService

Сводная таблица, я думаю:

BusinessServices Table            PackServices Table
----------------------            ------------------------
BusinessID(FK) ServiceID(FK)      PackID(FK)  Service(ID)
1              1                  1           1

Согласно этому сценарию: у XBusiness есть одна служба (AService), и я просто хочу, чтобы эта услуга была включена в пакет. Нет (BService). Поскольку у XBusiness нет BService.

Теперь,

  1. Как предотвратить добавление BService в пакет?

  2. Как я могу объяснить диаграмму отношений сущностей?

  3. Должна ли сводная таблица BusinessServices иметь первичный ключ для отношения сущности пакета?

...