特性如下
1.唯一
2.不可為空
3.短
唯一索引,被用來識別表中某行資料的屬性,維持資料庫的數據一致,必須具備獨特性,在下面這張表中可以看到customer_id是這張表的主鍵,通常會位在表最上方,通常會勾選PK、NN、AI
1.多個欄位所組成的主鍵
2.Compound Key的組成欄位包含了外鍵(Foreign Key)
3.Composite Key定義包含Compound Key
1.表中只有一個主鍵時,主鍵是唯一的索引
2.表中有多個主鍵,稱為複合主鍵,複合主鍵聯合保證唯一索引。
舉例:
下圖student_id、phone
為什麼需要?
特定表無法使用單個欄位來唯一標識,詳細解說還是得看國外大神的討論
Why use multiple columns as primary keys (composite primary key)
也被稱為引用完整性约束,在父子表中,外鍵是子表中的一列,必須與父表行的一个主键/唯一键匹配
有效外键規則如下:
1.子表外鍵作為父键的值。
2.外鍵部分為空。
外鍵又稱外部鍵,是指在關聯式資料庫中,每個資料表都是由關聯來連繫彼此的關係,父資料表(Parent Entity)的主鍵(Primary Key)會放在另一個資料表,當做屬性以建立彼此的關聯,而這個屬性就是外來鍵。
主從表
例如有兩張表,會員跟訂單,會員下單買了商品所以才會成立訂單,會員的行為為因,成立訂單為果,會員被稱為主表,
訂單為從表,建立兩張表的關聯時,必須透過外鍵約束,以確保數據的一致性
Day23-MySQL-踏出資料庫設計的第三步-正規化