【问题标题】:Primary Key and Composite Key主键和复合键
【发布时间】:2014-01-01 13:29:24
【问题描述】:

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

哪种方式最好?为什么?

【问题讨论】:

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


【解决方案1】:

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

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

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

最好的总是主观的。

【讨论】:

    【解决方案2】:

    这是经典的自然 vs 替代关键讨论。

    两者都不是绝对“更好” - 这完全取决于您想要实现的工程权衡。请查看优缺点列表,请参阅here

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2023-03-08
        • 1970-01-01
        • 2018-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多