2013-05-11 73 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

相关问题