有趣的问题@Argnist!
因此,为我的示例创建一些通用语言,您需要
一位同事写了一个简短的博客,介绍了两个代理键的用法,以解释上述暗淡的“在维上使用两个代理键”。
我将始终以yyyymmdd的形式将带有PK的DimDate添加到具有额外属性列的任何数据仓库中。
然后,您将事实表作为
然后加入“ kc”,您可以显示当前的“人员/文档/地址”维信息。如果您加入了“ k”,则可以显示历史的“人员/文档/地址”维信息。
不利的一面是,对于每个人/文档/地址/日期组合,此事实表需要一行。但这实际上是一个非常狭窄的表,因为该表仅具有许多外键。
这样做的好处是,您可以很容易地查询到您所问的各种问题。
或者,您可以将事实表设置为
这显然要紧凑得多,但是查询却变得更加复杂。您还可以在Fact表上放置一个视图,以使其更容易查询!
解决方案的选择取决于数据更改的频率。我怀疑情况不会很快改变,因此事实表的替代设计可能会更好。
希望能有所帮助。