Двойственные отношения от одного лица к другому - PullRequest
0 голосов
/ 25 ноября 2011

У меня есть сущность, называемая целями, каждая цель может оказывать влияние на другие цели, когда я представляю это в своей реляционной диаграмме сущность Эффекты-причины, я должен поставить 2 ссылку на сущность цели.Правильно ли это делать таким образом или есть альтернатива?

enter image description here

1 Ответ

0 голосов
/ 25 ноября 2011

Это один из двух способов сделать это.

Другой способ - ввести третью таблицу Effects_On_Objectives, которая идентифицирует «причину или следствие» и цель, и другой столбец, чтобы определить, какой тип отношений имеют эти две строки. (Действительно, вам может понадобиться еще одна таблица, EffectTypes, для управления типами.)

Table: Effect_Types
Effect_Type    INT NOT NULL PRIMARY KEY
Description    VARCHAR(45) NOT NULL

Table: Effects_On_Objectives
idEffects_Causes    INTEGER NOT NULL REFERENCES Effects_Causes
idObjectives        INTEGER NOT NULL REFERENCES Objectives
Effect_Type         INTEGER NOT NULL REFERENCES Effect_Types

Таблицы того же общего типа, что и таблица Effects_On_Objectives, иногда называют «соединительными таблицами» или «ассоциативными таблицами».

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...