iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0
自我挑戰組

菜鳥大學生資料庫學習記系列 第 5

Day 05 - 了解FOREIGN KEY 外鍵限制!

上一篇在創造新的資料庫時,有提到PRIMARY KEY也就是主鍵限制!那麼此篇來繼續介紹FOREIGN KEY 外鍵限制。因為外鍵限制在關聯式資料庫非常的重要。主要的功用是指向其他表的主鍵(Primary Key)的欄位,用於確定兩張表的關聯性及資料完整性,以避免部分資料匹配不上的問題。

特別提醒:

  • 如果想要使用外鍵,儲存引擎必須是 InnoDB
  • 外鍵只能指向被設定為主鍵的欄位
  • 外鍵與指向的主鍵資料型別必須相同

接下來直接用經典的客戶與訂單的關係來了解吧!

實例說明

首先我們先看到這張客戶資料表紀錄了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

今天就到這裡下篇見了~中秋連假快樂


上一篇
Day 04 - 開啟第一個資料庫與建立表單
下一篇
Day 06 - FOREIGN KEY 實際把鍵連起來!
系列文
菜鳥大學生資料庫學習記30

尚未有邦友留言

立即登入留言