Dimension表中的主键是否必须是Fact表中主键的一部分?

问题描述 投票:2回答:1

我们有一个带有非常大的Fact表的Star模式,以及大约20个Dimension表,当然来自Dimension Tables的PK必须是Fact表中的FK。

但事实表中的所有FK都需要成为PK的一部分吗?

我在几个DWH工作,那不是那样,但最近在大学考试中,我因为没有把它评分不好。

真的吗?这是一个好习惯吗?

如果我的事实表有20个维度,那么事实表PK必须是这30个属性的复合吗?

data-modeling data-warehouse dimensional-modeling
1个回答
3
投票

这是一个很好的做法,因为它有助于确保所有事实都引用现有维度成员,并可能提高某些DBMS的性能,但与任何其他设计/方法一样,它不是强制性的。

事实表的复合键实际上是recommended practice by Kimball的维度建模方法,即因为:

在大多数环境中,此组合键足以作为事实表的主键。在逻辑级别为事实行分配代理键通常没有优势,因为我们已经定义了使事实表行唯一的原因。

© www.soinside.com 2019 - 2024. All rights reserved.