如果我们有一个主键是复合键的表,我们是否总是创建一个新列作为主键而不是复合键?,或者它取决于数据库分析?
哪种方式最好?为什么?
答案 0 :(得分:0)
可能我添加代理键主键以及唯一复合词的主要原因是,如果我需要它用于另一个表的外键。
如果我怀疑主要复合密钥在不久的将来可能变得不独特,那么第二种情况就是如此。
除此之外,你必须谈论某种非常具体的优化。
最好是主观的。
答案 1 :(得分:0)
这是经典的自然 vs 代理主要讨论。
两者都不是“更好” - 这一切都取决于你想要实现的工程权衡取舍。在优缺点列表中,请参阅here。
答案 2 :(得分:0)
我认为您可以根据分析使用您想要的方式,但如果您的主键(复合)可能重复,则应使用新密钥作为主键。 你应该注意到外键和另一个制作复合键的属性,如果你使用非键属性来制作复合键,你必须从分析中确定然后再重建键。