唯一键意味着它们是主键?

时间:2013-05-19 12:12:11

标签: class database-design uml

预订由单个客户进行,可以进行多次预订。预订中的每间客房均可入住 由一两个客户。客户可以占用几个。客房。一顿饭 通过tableNumber属性将预订分配给表。 属性 组合名称和telephoneNumber是唯一的,属性roomNumber是 唯一的。

唯一键是否意味着它是主键? 这是否意味着name和telephoneNumber都是主键?

enter image description here

其他问题:

同一个密钥可以是表中的外键和主键吗?

2 个答案:

答案 0 :(得分:4)

  

唯一键是否意味着它是主键?

没有。首先,每个密钥都是唯一的,因此只说“密钥”的“唯一密钥”是多余的。同一个表中的所有键在逻辑上是等价的,但为了方便和历史原因,我们挑出其中一个并将其称为“主要”,而其余的则称为“备用”。

  

这是否意味着name和telephoneNumber都是主键?

不,这里没有两个键(更不用说两个键)。只有一个复合(又称“复合”,“复杂”)键,由两个字段组成,也恰好是主要字段。

这是否是键是另一回事......

答案 1 :(得分:0)

nope,唯一属性仅指该属性具有唯一值,该值不会在表的任何其他行中重复。它可能是主键,但您必须在关系设计中指明它。

here

中的一些要点
  • 一个表最多只能有一个主键,但不止一个唯一键。
  • 主键是唯一指定行的列的组合。
  • 一个区别是主键具有隐式NOT NULL约束,而唯一键不具有。因此,唯一键列中的值可能是也可能不是NULL(实际上这样的列可能包含最多一个NULL字段。因为NULL不是实际值(它表示缺少a值)