簡體   English   中英

替代鍵與復合鍵

[英]surrogate keys vs compound keys

對數據庫模式來說是新手(計划使用SQLite)。 話雖如此,我正在考慮使用代理鍵,因為數據庫當前包含一個復合鍵(3列),該鍵顯示在大多數表中。 我有幾個表,其中包含3列用於唯一鍵,而另一列包含一些信息。 我還有一個表包含3列唯一鍵和3列作為外鍵(許多父母)。 將所有這些表合並為一個表似乎沒有意義,因為會有很多空字段。

如果我選擇其中一個,會有任何陷阱嗎? 通常認為哪一種編程更方便?

先感謝您。

每種技術都有優點和缺點。

通常,如果只需要引用單個代理鍵列,則編寫SQL語句和JOIN會更容易。 它還可以大大減少數據庫的大小。

另一方面,使用代理鍵,您經常發現自己必須向聯接中添加至少一個額外的表才能檢索作為代理鍵一部分的信息。

代理密鑰的另外兩個優點:

  1. 許多框架要求使用整數主鍵字段。

  2. 如果將記錄綁定到任何類型的用戶界面控件(例如,網頁上的輸入),則將單個值附加到控件以進行識別比將其編碼和解碼多列要容易得多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM