關係型資料庫和主鍵外來鍵
阿新 • • 發佈:2021-01-12
文章目錄
SQL server的基礎學習3
一、什麼是關係
定義:表與表之間的聯絡
實現方法:通過設定不同形式的外來鍵來體現表和表的不同關係
一對一
既可以把表A的主鍵充當表B的外來鍵,也可以把表B的主鍵充當表A的外來鍵(一個人只有一把鑰匙,一把鑰匙只給一個人)
一對多
一對多:把表A的主鍵充當表B的外來鍵(一個部門有多個員工,一個員工只能在一個部門)
在多的一方新增外來鍵(在員工表中新增外來鍵即:員工表為外來鍵表,部門表是主鍵表)
多對多
多對多:必須通過單獨的一張表來實現(一個老師多個學生,一個學生多個老師)班級一張表,老師一張表,班級和老師的關係一張表
二、主鍵和外來鍵
主鍵
定義:能夠唯一標示一個事物的一個欄位或者多個欄位的組合
附註:
1、含有主鍵的叫做主鍵表,主鍵通常都是整數,不建議用字串當主鍵(如果主鍵是用於叢集式服務,才可以考慮用字串當主鍵)
2、主鍵的值通常都不允許修改,除非本記錄被刪除
3、主鍵不要定義成id,而要定義成表面_id
4、要用代理主鍵,不要用業務主鍵(任何一張表都不建議使用有業務含義的欄位充當主鍵,我們通常都是在表中單獨新增一個整型的編號充當主鍵欄位)
外來鍵
定義:如果一個表中的若干個欄位是來自另外若干個表的主鍵或唯一鍵,則這若干個欄位就是外來鍵
附註:
1、外來鍵通常都是來自另外表的主鍵而不是唯一鍵,因為唯一鍵可能為null
2、外來鍵不一定是來自另外的表,也可能來自表的主鍵(員工表中上層管理人員也是員工中的資料)
問題:先刪除主鍵表還是外來鍵表?
答:先刪除外來鍵表
如果先刪除主鍵表會報錯,因為這會導致外來鍵表中的資料引用失敗