天天看點

MySQL的各種鍵都廢了嗎?(下)

複合主鍵

主鍵通常定義在表的一列上,但這并不是必需的,也可使用多個列作為主鍵。此時上述的條件必須應用到構成主鍵的所有列,所有列值的組合必須是唯一的(多列中的單個列的值可以不唯一)。

表的主鍵含有一個以上的字段組成,不使用無業務含義的自增id作為主鍵

将多個字段設定為主鍵,形成複合主鍵,這多個字段聯合辨別唯一性,其中,某幾個主鍵字段值出現重複是沒有問題的,隻要不是有多條記錄的所有主鍵值完全一樣,就不算重複

超鍵

在關系中能唯一辨別元組的屬性集稱為關系模式的超鍵。一個屬性可以為作為一個超鍵,多個屬性組合在一起也可以作為一個超鍵。超鍵包含候選鍵和主鍵。

候選鍵

是最小超鍵,即沒有備援元素的超鍵。

外鍵

在一個表中存在的另一個表的主鍵稱此表的外鍵

主鍵的選擇

代理主鍵(推薦使用)

與業務無關的,無意義的數字序列。

不與業務耦合,是以更容易維護

通用的鍵政策能夠減少要編寫的源碼數量,減少系統的總體擁有成本

自然主鍵

事物屬性中的自然唯一辨別

繼續閱讀