лучший способ определить множественное отношение имеет-где, где A имеет -a X, B имеет -a X, C имеет -a X - PullRequest
0 голосов
/ 25 марта 2019

У меня есть ситуация, когда A имеет -A X, B имеет -A X, C имеет -A X и т. Д .... как я могу убедиться, что у A1 есть -A X1, B1 / C1 / D1 не может иметь X1.и так далее, и так далее?

Это обеспечивается только с помощью бизнес-логики?Я хотел бы знать лучшие практики.Спасибо

Ответы [ 2 ]

1 голос
/ 25 марта 2019

Судя по вашим вопросам, у вас есть несколько таблиц (A, B, C, D и т. Д.), А затем таблица X. Каждая из основных таблиц относится к X-таблице, но вы хотите обеспечить уникальное ограничение для всех табличных отношений с X-таблицей.

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

TJ

1 голос
/ 25 марта 2019

Этот ответ предполагает, что у вас уже есть какая-то распределительная таблица, которая связывает владельцев A, B, C с предметами X и т. Д. Примерно так:

owner | item
A     | X
B     | Y
C     | Z

Если вы хотите, чтобы данный элемент мог принадлежать только одному владельцу, вам нужно только добавить уникальное ограничение на столбец item:

ALTER TABLE yourTable ADD UNIQUE (item);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...