这可能过于主观,但有些时候让我感到困惑。
如果你有一个Fact表,允许10个维度的副本没有,你真的需要一个主键吗?
为什么会出现重复?
这有点棘手,但理想情况下每个副本实际上都是有效的。没有唯一的标识符可以将它们与记录记录的源系统分开。我们不拥有该系统,因此无法永远不会改变它。
数据
数据是批量处理的,只包含前几天的记录。因此,如果重新发布。我们只删除整天的记录,并在不使用主键的情况下重新发布新的记录日。
这就是我修复错误数据的方法。
已生成主键
我可以,但如果它从未使用或无论如何都要验证副本是否合法,为什么会这样做?
答案 0 :(得分:0)
SQL Server数据库表不需要主键。
数据库引擎可能会在后台创建主键。
答案 1 :(得分:0)
是的,SQL Server不需要主键。大多数情况下,它需要在CLUSTERED索引中。因为,如果此表上有另一个NONCLUSTERED索引,则每个索引都将使用CLUSTERED索引来指向数据。因此,主键是群集密钥的好例子。如果它很短,并且你有另一个索引 - 这是创建它的原因。