外鍵將一個表中的記錄連結到另一個表中的記錄。訂單表有一個 customer_id 欄位。此欄位是一個外鍵,指向客戶表的主鍵。這種連結確保每個訂單都屬於一個真實的客戶。如果沒有它,訂單可能會引用不存在的客戶。資料庫會強制執行這種關聯。
外鍵的作用遠不止於記錄關係。它們還能強制執行引用完整性。如果您嘗試插入 customer_id 不存在於 customer 表中的訂單,資料庫會拒絕該操作。如果您嘗試刪除有訂單的客戶,資料庫會根據規則阻止刪除操作或級聯刪除。這種強制執行機制可以防止出現孤立記錄和資料不一致的情況。外鍵也有助於提升查詢效能。資料庫可以利用這種關係來優化連線操作。並非所有資料庫都強制執行外鍵。一些 NoSQL 資料庫將引用完整性的維護留給應用程式。這賦予了開發人員更大的靈活性,但也帶來了更大的責任。應用程式必須確保引用的有效性。如果失敗,數據就會變得不一致。外鍵是一種約束。約束本身並不方便,但當它能夠防止災難發生時,就顯得尤為重要。
外國關鍵規則
- 限制-如果存在引用,則阻止刪除
- 級聯-自動刪除或更新引用記錄
- 設定空值 — 刪除時將外鍵設定為空值
- 不採取任何行動-允許操作並稍後檢查。
外鍵既是連接也是保證。連接用於連接不同的表,保證用於確保表之間的一致性。
Comments
No comments yet. Be the first to share a thought.
Leave a comment