1

如果我们有一个主键是复合键的表,我们是否总是创建一个新列作为主键而不是复合键?还是取决于数据库分析?

哪种方式最好?为什么?

4

3 回答 3

0

我添加代理键主键和唯一组合的主要原因可能是,如果我需要它作为另一个表的外键。

第二个是如果我怀疑主复合键可能在不久的将来变得不唯一。

除此之外,您还必须谈论某种非常具体的优化。

最好的总是主观的。

于 2014-01-01T13:49:28.093 回答
0

这是经典的自然键与代理键讨论。

两者都不是绝对“更好”的——这完全取决于你想要实现什么样的工程权衡。Fot 的优缺点列表,请参见此处

于 2014-01-01T20:52:59.660 回答
0

我认为您可以根据您的分析使用您想要的方式,但如果您的主键(复合)可能是重复的,您应该使用新键作为主键。并且您应该注意到外键和其他属性构成复合键,如果您使用非键属性作为复合键的一部分,则必须从分析中确定,然后再次重建您的键。

于 2014-01-09T21:39:35.610 回答