2014-09-12 74 views
0

我有两个表:候选键和主键是什么?

tblTrip (primaryKey: tripNo) 
tblPerson (primaryKey: personID) 

这些2和表之间的关系是N:N

所以有关系表:tblParticipateIn(tripNo,PERSONID ...)

1 - 表格的候选键是什么?

2-表的主键是什么?

+1

您是否在候选键的定义以及候选键和主键之间的区别? – 2014-09-12 12:59:27

回答

-2

在tblParticipateIn主键是: tripNO和PERSONID由于两个组合必须是独一无二的

候选键都: tripNO和PERSONID,它们都是任选的,因为主键。

阅读更多信息:

http://blog.sqlauthority.com/2009/10/22/sql-server-difference-between-candidate-keys-and-primary-key-2/

+0

我可以对tblParticipateIn中的每个密钥分别进行说明吗? tripNo例如,我可以说这是一个候选键 – Hanin 2014-09-12 13:07:39

+0

tripNO和personID都是单独的外键。他们引用他们主要的表格。所以tripNO指的是tblTrip,而personID指的是tblPerson。 然而,他们也是tblParticipateln的主要关键 – Sliver2009 2014-09-12 13:09:59

+0

@Hanin&Sliver2009:这个答案没有意义,因为它自相矛盾,说这个组合是一个PK,每个都可以是一个PK。但无论如何这两种说法都是错误的,请参阅Mike Sherrill的“猫召回”的答案。此外,链接是错误的:CK必须是不包含较小的唯一列集的唯一列集。 (尽管一个SQL PK [sic]声明实际上只声明唯一性,而不是关系意义上的CK或PK。) – philipxy 2014-09-20 23:01:46

0

ANS1-tripNo,PERSONID都是候选键 ANS2-tripN

+0

你错了,tblParticipateIn中的tripNO和personID的组合是主键。他们都必须是独一无二的。这是一个n-n关系 – Sliver2009 2014-09-12 13:04:30

1

这是不可能完全回答你的问题不知道你已经列遗漏了 - 由...表示的那些 - 以及它们的依赖关系。

在大多数情况下,,一对{tripNo,personID}列是一个候选键;可能会有更多的候选键。一对列{tripNo,personID}是最可能的主键。