如果我们有一个主键是复合键的表,我们是否总是创建一个新列作为主键而不是复合键?还是取决于数据库分析?
哪种方式最好?为什么?
如果我们有一个主键是复合键的表,我们是否总是创建一个新列作为主键而不是复合键?还是取决于数据库分析?
哪种方式最好?为什么?
我添加代理键主键和唯一组合的主要原因可能是,如果我需要它作为另一个表的外键。
第二个是如果我怀疑主复合键可能在不久的将来变得不唯一。
除此之外,您还必须谈论某种非常具体的优化。
最好的总是主观的。
这是经典的自然键与代理键讨论。
两者都不是绝对“更好”的——这完全取决于你想要实现什么样的工程权衡。Fot 的优缺点列表,请参见此处。
我认为您可以根据您的分析使用您想要的方式,但如果您的主键(复合)可能是重复的,您应该使用新键作为主键。并且您应该注意到外键和其他属性构成复合键,如果您使用非键属性作为复合键的一部分,则必须从分析中确定,然后再次重建您的键。