對單列的多個外鍵引用
在資料庫設計中,將一個表格中的單一欄位引用為外鍵是有益的多個其他表中的鍵。這種方法可以實現跨多個實體的無縫資料關聯和一致的資料檢索。
問題陳述
考慮以下資料庫場景:
您有一個表名為 pdf_created,其中包含 item_type、item_id 和數量欄位。該表中的每一行代表從 PDF 文件中提取的一個項目。 item_type 欄位標識項目的類型(例如,「1」表示產品,「2」表示範本標題)。 item_id 欄位引用對應項目表(例如產品、服務、標題)的主鍵。目標是將 item_id 欄位作為所有三個項目表(產品、服務和標頭)中的外鍵來引用。
但是,以下SQL 程式碼無法建立所需的關係:
失敗原因
問題在於item_id 欄位上的多個外鍵約束。外鍵約束可確保 item_id 欄位中的每個值都作為主鍵值出現在四個資料表(產品、服務、標頭)中的至少一個。但是,無法保證 item_id 始終作為主鍵同時存在於所有四個表中。
解決方案
雖然無法建立多個foreign儘管對引用不同表的單一列進行鍵約束,您仍然可以使用item_id 列來引用三個項目表。刪除 item_id 列上的所有外鍵約束,並依靠應用程式程式碼來強制引用完整性:
這允許您維護必要的資料關係,而不會引入資料完整性錯誤。
以上是資料庫設計中如何處理單列的多個外鍵引用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!