我们再来一次,旧的论点仍然出现......
我们是否更好地将业务密钥作为主键,或者我们是否更愿意在业务键字段上具有唯一约束的代理ID(即SQL Server标识)?
请提供支持您的理论的示例或证明.
即使我问它,这似乎是重复,但我搜索并没有找到它.对于SO来说这似乎是一个很好的问题 - 即使我确信我可以在许多博客上找到它等等.因此,博客上的辩论可能会比您在博客上引起的争论更多.
我遇到了一个连接问题:收回太多记录.我认为这是"扩张".我在连接集中添加了一个表,并且扩展的行数太多了.通常在发生这种情况时,我会添加一个选择连接中涉及的所有ID字段.这样,扩展正在发生的地方非常明显,我可以更改连接的ON来修复它.除了这种情况,我添加的表没有ID字段.对我来说,这是一个问题.但也许我错了.
问题:数据库中的每个表都应该有一个用作PK的IDENTITY字段吗?在每个表中都有ID字段有什么缺点吗?如果你有理由相信这个表永远不会用在PK/FK关系中怎么办?
相关但不重复:拥有标识列不是一个好主意?
显然这场辩论已经持续了一段时间.应该知道.
这篇文章(代理与自然键)也是相关的.