0

问题是,如果我有关系 R(A,B,C,D) 其中 A 是 PK 和 C 如果该关系的备用键,我是否需要在基于该关系创建表时指出 C 是唯一的钥匙?我的意思是:

create table R (
                 A A's domain,
                 B B's domain,
                 C C's domain,
                 D D's domain,
                 primary key A,
                 unique C 
                )

我是否必须指定 C 是该表的唯一键,即使该键不是从任何其他表中发布的(它只是一个尚未被选为主键的候选键?

4

2 回答 2

1

Unique Key 是一个约束,这意味着如果您将 C 声明为 unique ,则该列将不允许重复值。如果你不指定它,它可能有重复的值,因此作为候选键失败

于 2012-09-27T06:12:48.907 回答
0

如果指定它会防止不正确的数据被插入到表中(例如 中有两行具有相同的值C),那么不这样做的唯一原因是如果它已被证明是一个性能问题,并且如果你已经证明通过其他一些机制可以防止不正确的数据。

于 2012-09-27T06:32:12.790 回答