上一篇在創造新的資料庫時,有提到PRIMARY KEY也就是主鍵限制!那麼此篇來繼續介紹FOREIGN KEY 外鍵限制。因為外鍵限制在關聯式資料庫非常的重要。主要的功用是指向其他表的主鍵(Primary Key)的欄位,用於確定兩張表的關聯性及資料完整性,以避免部分資料匹配不上的問題。
特別提醒:
接下來直接用經典的客戶與訂單的關係來了解吧!
首先我們先看到這張客戶資料表紀錄了4筆顧客資料。顧客姓名則是Primary Key(雖然不應該用姓名拿來當pk,可能會有同名同姓的問題,但將就一下這樣比較好解釋xD)
客戶資料表
顧客姓名(Primary Key) | 住址 | 電話 |
---|---|---|
李大華 | 桃園 | 09111211 |
李大華 | 高雄 | 09232323 |
林小明 | 台北 | 09256627 |
林小美 | 新北 | 09741852 |
然後我們看到訂單資料表上也有顧客姓名,因為我們想知道這筆訂單會是誰訂的。只要確保外鍵限制有連接好,[訂單資料表的顧客姓名]會等於[客戶資料表的顧客姓名],這樣不僅能方便查詢更可以防止訂單編號05的狀況出現。
來看看訂單編號05的顧客姓名並沒有出現在客戶資料表,所以如果我們有連接好外鍵限制,這筆資料會加不上去,以防止幽靈訂單的出現。
訂單資料表
訂單編號(Primary Key) | 顧客姓名(FOREIGN KEY) | 商品名稱 | 價格 |
---|---|---|---|
01 | 李大華 | 漢堡 | 70 |
02 | 李大華 | 薯條 | 50 |
03 | 林小明 | 可樂 | 40 |
04 | 林小美 | 拉麵 | 230 |
05 | 羅小呆 | 奶茶 | 87 |
今天就到這裡下篇見了~中秋連假快樂