1. 程式人生 > 資料庫 >關係型資料庫和主鍵外來鍵

關係型資料庫和主鍵外來鍵

文章目錄

SQL server的基礎學習3

一、什麼是關係

定義:表與表之間的聯絡
實現方法:通過設定不同形式的外來鍵來體現表和表的不同關係

一對一

既可以把表A的主鍵充當表B的外來鍵,也可以把表B的主鍵充當表A的外來鍵(一個人只有一把鑰匙,一把鑰匙只給一個人)

一對多

一對多:把表A的主鍵充當表B的外來鍵(一個部門有多個員工,一個員工只能在一個部門)
在多的一方新增外來鍵(在員工表中新增外來鍵即:員工表為外來鍵表,部門表是主鍵表)
在這裡插入圖片描述
在這裡插入圖片描述

多對多

多對多:必須通過單獨的一張表來實現(一個老師多個學生,一個學生多個老師)班級一張表,老師一張表,班級和老師的關係一張表
在這裡插入圖片描述
在這裡插入圖片描述 在這裡插入圖片描述

二、主鍵和外來鍵

主鍵

定義:能夠唯一標示一個事物的一個欄位或者多個欄位的組合
附註:
1、含有主鍵的叫做主鍵表,主鍵通常都是整數,不建議用字串當主鍵(如果主鍵是用於叢集式服務,才可以考慮用字串當主鍵)
2、主鍵的值通常都不允許修改,除非本記錄被刪除
3、主鍵不要定義成id,而要定義成表面_id
4、要用代理主鍵,不要用業務主鍵(任何一張表都不建議使用有業務含義的欄位充當主鍵,我們通常都是在表中單獨新增一個整型的編號充當主鍵欄位)

外來鍵

定義:如果一個表中的若干個欄位是來自另外若干個表的主鍵或唯一鍵,則這若干個欄位就是外來鍵
附註:
1、外來鍵通常都是來自另外表的主鍵而不是唯一鍵,因為唯一鍵可能為null
2、外來鍵不一定是來自另外的表,也可能來自表的主鍵(員工表中上層管理人員也是員工中的資料)

3、含有外來鍵的表叫外來鍵表,外來鍵欄位來自的呢一張表叫做主鍵表
問題:先刪除主鍵表還是外來鍵表?
答:先刪除外來鍵表
如果先刪除主鍵表會報錯,因為這會導致外來鍵表中的資料引用失敗