外鍵是否可以跨表引用多個主鍵?
一個常見的資料庫設計問題涉及使用單一外鍵列引用多個表中的主鍵。 我們舉個例子來說明:
資料庫:員工資訊
表格:
employees_ce
(主鍵:empid
)employees_sn
(主鍵:empid
)deductions
(外鍵:id
)id
表中的 deductions
外鍵能否同時引用 empid
和 employees_ce
中的 employees_sn
主鍵?
解:
雖然將單一外鍵連結到不同表中的多個主鍵似乎很直觀,但標準資料庫設計不允許這樣做。最佳實踐是引入一個連結表來連接相關實體。
改進的資料庫結構:
employees
(主鍵:id
)employees_ce
(外鍵:id
)employees_sn
(外鍵:id
)deductions
(外鍵:employee_id
)此修訂後的結構使用帶有主鍵 (employees
) 的單一 id
表來表示所有員工,無論其類型為何。 employees_ce
和 employees_sn
現在使用引用 id
中的 employees
列的外鍵,將它們連結到各自的員工類別。 deductions
表的外鍵 employee_id
指向 employees
表中的主鍵。這種方法可確保資料完整性並簡化表之間的查詢和連接。
以上是單一外鍵可以引用不同表中的多個主鍵嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!