資料
外鍵(foreign key)
外鍵(foreign key)是一張表格裡的一個欄,它指向另一張表格的主鍵(primary key)——這就是資料庫把列與列連接起來的方式。比如一筆訂單裡存著下單顧客的 id,這個 customer_id 就是外鍵,是從訂單射向那位顧客的一支小箭頭。
正是這個小手法,把一張張獨立的表格織成了一張相連的網。你不必在每筆訂單上把顧客的全名和地址重抄一遍——只需把他的 id 存一次,需要時再順著取。順著箭頭,你就能從一筆訂單跳到它的顧客,或者把屬於同一位顧客的所有訂單都收集起來。
資料庫可以替你守護這些連結:它會拒絕讓一筆訂單引用一個並不存在的顧客,也能阻止你刪掉一個名下還掛著訂單的顧客。這道護欄叫做參照完整性(referential integrity)——它讓你的資料不至於指向虛空。
CREATE TABLE orders ( id INTEGER PRIMARY KEY, customer_id INTEGER REFERENCES customers(id) );
customer_id 是外鍵——每筆訂單都指回 customers 表格裡真實存在的一列。
主鍵必須唯一;外鍵則沒有這條規矩——許多訂單可以指向同一位顧客,「一位顧客對應多筆訂單」正是這麼實現的。
又稱
另見