1. 程式人生 > 其它 >主鍵、外來鍵、索引理解以及主鍵型別選擇

主鍵、外來鍵、索引理解以及主鍵型別選擇

目錄

主鍵

主鍵的主要作用是保證表的完整、保證表資料行的唯一性質

  • 業務主鍵(自然主鍵):在資料庫表中把具有業務邏輯含義的欄位作為主鍵,稱為“自然主鍵(Natural Key)”。自然主鍵的含義就是原始資料中存在的不重複欄位,直接使用成為主鍵欄位。 這種方式對業務的耦合太強,一般不會使用
  • 邏輯主鍵(代理主鍵):在資料庫表中採用一個與當前表中邏輯資訊無關的欄位作為其主鍵,稱為“代理主鍵”。邏輯主鍵被廣泛使用在業務表、資料表,一般有幾種生成方式:uuid、自增
  • 複合主鍵(聯合主鍵):通過兩個或者多個欄位的組合作為主鍵。耦合性太高且大都能使用邏輯主鍵替代不建議使用。使用複合主鍵的原因可能是:對於關係表來說必須關聯兩個實體表的主鍵,才能表示它們之間的關係,那麼可以把這兩個主鍵聯合組成複合主鍵即可。

外來鍵

外來鍵是一種約束,表與表的關聯約束,例如a表依賴關聯b表的某個欄位,你可以設定a表字段外來鍵關聯到b表的欄位,將兩張表強制關聯起來,這時候產生兩個效果:

  1. 表 b 無法被刪除,你必須先刪除a表
  2. 新增的資料必須與表b某行關聯

索引

索引用於快速找出在某個列中有一特定值的行

使用原則:

  • 對經常更新的表就避免對其進行過多的索引,對經常用於查詢的欄位應該建立索引
  • 資料量小的表最好不要使用索引,因為由於資料較少,可能查詢全部資料花費的時間比遍歷索引的時間還要短,索引就可能不會產生優化效果。
  • 在一同值少的列上(欄位上)不要建立索引,比如在學生表的"性別"欄位上只有男,女兩個不同值。相反的,在一個欄位上不同值較多可是建立索引。

參考部落格