Для того же столбца таблицы требуется два условия внешнего ключа

Я прикрепил простую диаграмму моей старой базы данных.

В этом проекте

  • Между двумя таблицами T и P существует таблица "Множество ко многим", представленная таблицей TP.
  • Таблица отношений TP имеет отношение "один ко многим" к таблице D

Теперь, есть некоторые изменения в требованиях, что сам T может иметь много (D) s.

Как сделать это новое условие внешнего ключа в таблице D в дополнение к старому (от TP до D).

Я имею в виду, возможно ли связать T. [Id] с D. [T] в дополнение к ссылке TP. [T, P] в D. [T, P]?

Как решить мое новое требование?

3 ответа

Я решил эту проблему:

  • Создание D. [T] Невозможно.
  • Добавление нового внешнего ключа ограничивает таблицу D (T. [Id] на D. [T]).

Теперь,

Если новая строка вставлена в таблицу D, так что значение P- компонента установлено в NULL, тогда будет проверяться только ограничение T-D.

Если в новой строке P- компонент установлен для значения отложить с NULL, то будут установлены два ограничения T to D и TP на D.


Кажется, это просто. Просто добавьте новый столбец в D-ссылку на T. Обратите внимание, что если у меня это право, T от D. [T, P] может быть не таким, как T от D. [T]


Да, вы могли бы поместить ссылку внешнего ключа из таблицы T в таблицу D. Это будет отношение "один ко многим", как таблица T для сопоставления отношения TP.

Я не понимаю, почему вы хотите иметь ссылку FK на таблицу T в таблице D. В настоящее время вы можете присоединиться к T к TP к D, чтобы получить строки в таблице D, связанные с строкой в таблице T.

licensed under cc by-sa 3.0 with attribution.