主键和复合键

时间:2014-01-01 13:29:25

标签: database database-design primary-key composite-primary-key primary-key-design

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

哪种方式最好?为什么?

3 个答案:

答案 0 :(得分:0)

可能我添加代理键主键以及唯一复合词的主要原因是,如果我需要它用于另一个表的外键。

如果我怀疑主要复合密钥在不久的将来可能变得不独特,那么第二种情况就是如此。

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

最好是主观的。

答案 1 :(得分:0)

这是经典的自然 vs 代理主要讨论。

两者都不是“更好” - 这一切都取决于你想要实现的工程权衡取舍。在优缺点列表中,请参阅here

答案 2 :(得分:0)

我认为您可以根据分析使用您想要的方式,但如果您的主键(复合)可能重复,则应使用新密钥作为主键。 你应该注意到外键和另一个制作复合键的属性,如果你使用非键属性来制作复合键,你必须从分析中确定然后再重建键。