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