«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Может ли внешний ключ ссылаться на несколько таблиц в реляционной базе данных?

Может ли внешний ключ ссылаться на несколько таблиц в реляционной базе данных?

Опубликовано 9 ноября 2024 г.
Просматривать:248

Can a Foreign Key Reference Multiple Tables in a Relational Database?

Может ли внешний ключ указывать на несколько таблиц?

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

Полиморфные отношения и внешние ключи

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

Ответ

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

Альтернативы

Однако существуют способы имитировать это поведение, используя другие методы, такие как :

  • Столбцы дискриминатора: Добавьте в родительскую таблицу столбец, определяющий тип дочернего элемента table.
  • Объединение таблиц: Создайте одну таблицу, содержащую объединенные данные из всех связанных таблиц.
Заявление о выпуске Эта статья воспроизведена по адресу: 1729692950. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3