iT邦幫忙

2022 iThome 鐵人賽

DAY 22
0
Modern Web

MySQL,我的超人系列 第 22

Day22-MySQL-踏出資料庫設計的第二步-主/外鍵

  • 分享至 

  • xImage
  •  

主鍵Primary Keys

屬性可以點這裡複習

特性如下

1.唯一
2.不可為空
3.短

https://ithelp.ithome.com.tw/upload/images/20221006/20144865EDWct5ENPY.jpg

唯一索引,被用來識別表中某行資料的屬性,維持資料庫的數據一致,必須具備獨特性,在下面這張表中可以看到customer_id是這張表的主鍵,通常會位在表最上方,通常會勾選PK、NN、AI

複合主鍵/聯合主鍵/Composite/Compound Key

1.多個欄位所組成的主鍵
2.Compound Key的組成欄位包含了外鍵(Foreign Key)
3.Composite Key定義包含Compound Key

1.表中只有一個主鍵時,主鍵是唯一的索引
2.表中有多個主鍵,稱為複合主鍵,複合主鍵聯合保證唯一索引。

舉例:
下圖student_id、phone

https://ithelp.ithome.com.tw/upload/images/20221006/201448650sSNX9cTRa.jpg

為什麼需要?

特定表無法使用單個欄位來唯一標識,詳細解說還是得看國外大神的討論

Why use multiple columns as primary keys (composite primary key)

外鍵約束Foreign Keys Constraints

也被稱為引用完整性约束,在父子表中,外鍵是子表中的一列,必須與父表行的一个主键/唯一键匹配

有效外键規則如下:

1.子表外鍵作為父键的值。
2.外鍵部分為空。

外鍵Foreign Keys

外鍵又稱外部鍵,是指在關聯式資料庫中,每個資料表都是由關聯來連繫彼此的關係,父資料表(Parent Entity)的主鍵(Primary Key)會放在另一個資料表,當做屬性以建立彼此的關聯,而這個屬性就是外來鍵。

外鍵

主從表
例如有兩張表,會員跟訂單,會員下單買了商品所以才會成立訂單,會員的行為為因,成立訂單為果,會員被稱為主表,
訂單為從表,建立兩張表的關聯時,必須透過外鍵約束,以確保數據的一致性

預告

Day23-MySQL-踏出資料庫設計的第三步-正規化


上一篇
Day21-MySQL-踏出資料庫設計的第一步
下一篇
Day23-MySQL-踏出資料庫設計的第三步-正規化
系列文
MySQL,我的超人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言