将一个维度连接到具有不同粒度的多个事实表



我是多维数据建模的新手。我有一个维度和两个事实表:

使用代理键将一个事实表(fact1)连接到维度。这里没有问题。我似乎不知道将维度连接到第二个事实表(fact2)的最佳方法是什么。如果这是一个关系数据库设计,我会在fact2表上使用NaturalKey2:(NaturalKey1 + NaturalKey2使一条记录在维度表中唯一)

DIMENSION
SurogateKey | NaturalKey1 | NaturalKey2 | Current
1 | a1 | b1 | 0 
2 | a1 | b2 | 1 
3 | a2 | b3 | 1 

FACT1

(fk to Dimension)
1
2
3
FACT2
a1 ?
a2 ?

我是否使用只有NaturalKey2的桥接维度并使用从该维度到fact2的SK ?像这样的

维度2

SurogateKey | NaturalKey2 
1 | a1 
2 | a2 

您的维度是由代理键在它所应用的任何事实中表示的,因此它应该是在事实2中出现的代理键。

我没有发现你的问题的重点,最初,你提到的第二个事实是不同的。这样做的维度方法是在更高的层次上有第二个维度,它只包含适合该颗粒的列。这两个维度都是"一致的",即字段的标题和内容对齐。

最新更新