【发布时间】:2016-09-30 00:12:48
【问题描述】:
我是维度数据建模的新手。我有一个维度和 2 个事实表:
使用代理键将一个事实表 (fact1) 连接到维度。这里没有问题。我似乎无法弄清楚将维度加入第二个事实表(fact2)的最佳方法是什么。如果是关系数据库设计,我会在 fact2 表上使用 NaturalKey2: (NaturalKey1 + NaturalKey2 使记录在维度表中唯一)。
即
DIMENSION
SurogateKey | NaturalKey1 | NaturalKey2 | Current
1 | a1 | b1 | 0
2 | a1 | b2 | 1
3 | a2 | b3 | 1
事实1
(fk to Dimension)
1
2
3
FACT2
a1 ?
a2 ?
我是否使用只有 NaturalKey2 的桥接维度并使用从该维度到 fact2 的 SK?类似的东西
维度 2
SurogateKey | NaturalKey2
1 | a1
2 | a2
【问题讨论】:
-
当问这样的问题时,最好使用这种方法:在业务中,“fact2”数据如何知道它属于哪个维度数据?什么是通用业务密钥?有没有办法让只有一个事实表来降低复杂性,因为两者似乎有一个共同的关键?为什么有一个维度的代理键?这将在业务中代表什么(没有其他规则可以匹配到维度中)?
-
在 DW 中不需要外键。请参阅“热插拔尺寸”
标签: data-warehouse dimensional-modeling star-schema