2013-05-11 49 views
2

我已閱讀關於RDBMS中的鍵。 https://stackoverflow.com/a/6951124/1647112 但是我不明白需要使用候選鍵。如果只需要一個主鍵來唯一標識表中的一行,爲什麼需要候選鍵? 請給出一個很好的例子,說明各種鍵的差異和重要性。 在此先感謝。主鍵和候選鍵之間的區別

+1

我覺得OP想要這個:假設你有三張表。你的主表的主要部分是定義爲主鍵的最重要的(對於數據設計)鍵。但。其他兩個表具有不同的主鍵。爲了使表1和表2或表1和表3之間能夠進行高效的連接,您可能需要將外部表中的公共列(外鍵)添加到表1中。這是查看您嘗試訪問的另一種方式理解。外鍵唯一標識行rable 1 – 2013-05-11 20:53:19

回答

3

表可以有一個或多個候選鍵 - 這些鍵是唯一標識表中的一行的鍵。

但是,只能選擇其中一個候選鍵作爲主鍵。

+0

好的,所以主鍵是候選鍵之一? – 2013-05-11 20:50:07

+2

@ShashankRaghunath - 是的。你選擇的那個。 – Oded 2013-05-11 20:51:13

+0

請友善地告訴我,爲什麼使用超級密鑰? – 2013-05-11 20:54:20

0

從,上面的回答我得出了這個結論

Super鍵

     || 
         \/ 

候選鍵(從超使用的一個或多個屬性(用於選擇一個或多個行的一個或多個屬性)用於選擇單個行)

     || 
         \/ 

主鍵(用於選擇單個行候選鍵之中的一個屬性)

我是否正確?

+2

**主鍵**是**作爲數據庫設計師挑選的候選鍵**之一。它不是候選關鍵字的*部分,它是現有的已識別候選關鍵字(**整個候選關鍵字)中的一個。 – 2013-05-11 21:26:49

相關問題