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

Может ли иностранный ключ ссылаться на несколько первичных ключей одновременно?

Опубликовано в 2025-03-22
Просматривать:402

Can a Foreign Key Reference Multiple Primary Keys Simultaneously?

обработка сложных отношений иностранного ключа в дизайне базы данных

]

сценарий

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

Decuctions , которая должна ссылаться на обоих emoncuments_ce и сотрудники_SN таблицы. ]

проблема и ее решение

]

вопрос заключается в том, может ли иностранный ключ в

decuctions непосредственно ссылаться на первичные ключи в обоих сотрудники_. Ответ: не напрямую, в стандартной реляционной базе данных. Один иностранный ключ может ссылаться только на один первичный ключ. ] Предлагаемое решение использует хорошо структурированную модель наследования для разрешения этого. ] подход, основанный на наследстве

]

сотрудники

,

сотрудники_ce

, и

сотрудники сотрудники - базовая таблица, с healifs_ce и сотрудники_SN в виде специализированных таблиц, наследующих от него. ] Структура базы данных: ]

сотрудники (id int Первичный ключ, имя varchar (255)) emplocates_ce (id int Первичный ключ, ce_specific_attribute varchar (255), employee_id int, иностранный ключ (employee_id) Ссылка сотрудников (ID)) сотрудники_SN (id int Первичный ключ, sn_specific_attribute varchar (255), employee_id int, иностранный ключ (employee_id) ссылки сотрудники (id))

Решение:
employees (id INT PRIMARY KEY, name VARCHAR(255))
employees_ce (id INT PRIMARY KEY, ce_specific_attribute VARCHAR(255), employee_id INT, FOREIGN KEY (employee_id) REFERENCES employees(id))
employees_sn (id INT PRIMARY KEY, sn_specific_attribute VARCHAR(255), employee_id INT, FOREIGN KEY (employee_id) REFERENCES employees(id))
сотрудники_CE

и сотрудники_sn ,

таблица

следует ссылаться на таблицу общего родителя, сотрудники : ] Таблица. Decuctions (ID int Primary Key, employee_id int, decuction_amount decimal (10,2), ..., иностранный ключ (employee_id) Ссылки сотрудники (id)) ] Этот подход обеспечивает референциальную целостность и избегает избыточности.

employee_id
deductions (id INT PRIMARY KEY, employee_id INT, deduction_amount DECIMAL(10,2), ..., FOREIGN KEY (employee_id) REFERENCES employees(id))
сотрудники

, независимо от того, имеет ли этот сотрудник дополнительная информация в empumments_ce или сотрудники_sn . Этот дизайн эффективно управляет отношениями и поддерживает согласованность данных. ]

Последний учебник Более>

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

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

Copyright© 2022 湘ICP备2022001581号-3