翻譯|行業資訊|編輯:董玉霞|2022-09-14 11:53:16.667|閱讀 226 次
概述:本文介紹Navicat16.1 中選擇主鍵的相關內容。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
本文介紹Navicat16.1 中選擇主鍵的相關內容。
身為數據庫設計人員,你將面臨的首要決定是你的表應使用哪種主鍵(PK)。如果你詢問任何每天處理數據庫的人,無論是數據庫管理員、開發人員還是測試人員,你都會得到無數的意見和理由。使解決問題的障礙更加復雜的是,沒有一種萬能的解決方案。有鑒于此,本系列將介紹支持和反對不同類型 PK 的一些原因。在所有這些原因的某處,將會引導你找出 PK 的最佳類型,以滿足你的組織需求。在第一部分中,我們將比較兩種基本類型的 PK:自然鍵和代理鍵。稍后,我們將討論是否使用數據庫自動遞增功能,以及哪些數據類型(如果有)是最好的 PK。
自然鍵是由表中已存在的一個或多個列組成的(例如,它們是數據模型中實體的屬性),用于唯一標識表中的一條記錄。由于這些列是實體的屬性,因此它們本質上具有業務意義。以下是 Navicat Premium 16 的表設計器中有自然鍵的表示例。我們可以通過 “鍵”列中的鑰匙圖標輕松找到主鍵:
查看一下數據,可以知道 productCode 是有業務義意的:
代理鍵(或合成鍵、偽鍵、實體標識符、非事實型鍵、技術鍵等!)是由系統生成的(GUID、序列、唯一標識符等)值,沒有業務意義,用于唯一標識表中的記錄。鍵本身也可以由一列或多列(即復合鍵)組成。 我們可以看到在同一個數據庫的表中有一個代理鍵,定義了一個customerNumber 列作為表的 PK:
雖然該列不是自動遞增,但它是一個與客戶實體無關的數字字段:
那么,為什么一個表使用自然鍵,而另一個表使用代理鍵呢?
產品有一個唯一的庫存編號是很常見的,這是一個理想的PK。而添加一個額外的數字鍵只會浪費磁盤空間,并且幾乎肯定需要在 productCode 列上添加一個用于搜索的額外索引。但另一方面,客戶通常不會有一個唯一標識符。若你必須在數據庫中辨識特定客戶,可能需要一個長得驚人的列列表。因此,分配一個數字代理鍵來索引表中每一列通常要容易得多。
在 “選擇主鍵”的第一部分中,我們探討了自然主鍵和代理主鍵,并考慮了什么因素決定選擇哪一種。決定一開始使用自然鍵還是代理鍵是很重要的,因為你選擇哪種主鍵也將有助于解答一些后續問題,特別是使用代理鍵。
如果你想咨詢Navicat價格或者咨詢其他版本相關信息,點擊查看。
想要了解更全面的數據庫管理工具的相關功能訊息,歡迎加入QQ技術群:765665608
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn