一、定義:
1.主鍵:能夠通過某個字段能夠唯一區分出不同的記錄,插入相同主鍵的兩條記錄是不被允許的;
2.對主鍵的要求:記錄一旦插入表中,主鍵最好不要再修改,主鍵用於定位表中唯一記錄,修改主鍵會造成一系列影響;
3.主鍵選擇的基本原則:不使用任何業務相關的字段作為主鍵,最好是完全業務無關的字段;
- 自增整數類型:數據庫在插入時自動為每一條記錄分配一個自增整數,可以不用擔心主鍵重復,基本上能夠滿足應用需求;如果使用INT自增類型,當一張表的記錄數超過約21時,會達到上限而出錯,使用BIGINT自增類型可以最多約922億億條記錄;
- 全局唯一GUID類型:使用一種全局唯一的字符串作為主鍵。GUID通過網卡MAC地址。時間戳和隨機數保證任意計算機在任意時間生成的字符串都是不同的。
二、聯合主鍵
1.定義:關系數據庫實際上還允許通過多個字段唯一標識記錄,將兩個或更多的字段同時設置為主鍵;
2.對於聯合主鍵,允許一列有重復,只要不是所有主鍵列都重復即可,即沒有兩列組合起來是相同的;
3.可以使用多個列作為聯合主鍵,但是沒有必要的情況下不要使用聯合主鍵,會提高關系表的復雜度。
