3

我是新的维度建模我相信你们可以帮助我在下面的疑惑。自然的关键和事实表

在生产系统中,我有一个事务表,例如销售表。唯一标识符是一个名为SaleId的主键。 例子:

enter image description here

我的疑问是造型事实表时,应在SaleID包含在事实表作为NaturalKey?

enter image description here

而且应该事实表有SurrogateKey?

请随时给我任何链接作为参考。 在此先感谢

回答

3

从技术上讲,它可能不是一个自然的关键 - 它确实看起来系统生成。但是,有时将系统生成的ID存储在事实中用作退化维度非常有效。通常情况下,这些商业用户确实可以看到这个系统生成的ID(订单号,发票号,采购订单号等),或者没有其他有用的方法来识别可以有用地分组在一起的某些行。

如果您的商务智能解决方案的用户可能希望能够深入了解信息并通过销售查看信息,那么SaleID可能是此治疗的良好人选。想一想,是否有其他途径可以让他们达到这个水平 - 客户可以在同一天与两种不同的销售联系在一起吗?如果是这样,您的用户是否希望将它们看作两个单独的销售?您可能需要与他们交谈,以了解对他们有用的东西。如果由于某种原因你不能得到明确的答案,我会说保留它 - 几乎没有什么伤害,如果它没有被使用,你可以在以后删除它。

这里的金博尔组对退化维度取,如果你在所有不清楚他们是如何工作的:

http://www.kimballgroup.com/2003/06/design-tip-46-another-look-at-degenerate-dimensions/


至于事实表代理键 - 我总是用他们。正如Kimball的Design Tip #81所指出的那样,它们有时是有用的,而且这是我最初希望放入的那种东西,而不是后来才意识到它会有用。第2点 - 您可能希望通过插入新行并删除旧行来进行更新 - 当然适用于我所做的工作。

+1

我删除了我的答案,因为你提供了更多信息。我稍微修改它只是为了删除对我的引用,我希望你不介意。 –

+1

@MarekGrzenkowicz编辑很好,谢谢你让我知道!我只是想把它应该归功于哪里,因为你已经过了一些有效的分数。 –

4

事实表中主键的需求取决于事实表的类型。从不更新的交易事实并不需要它。定期快照可能不需要它,除非当前时段是迄今为止的测量。积累快照肯定需要它。