我们有一个Star模式,其中有一个非常大的Fact表,大约有20个Dimension表,当然,事实表中Dimension Table中的PK必须为FK。
但是事实表中的所有FK是否也需要成为PK的一部分?
我在几个DWH上工作,但情况并非如此,但是最近在大学考试中,我因为不参加而成绩很差。
是真的吗?这是一个好习惯吗?
如果我的事实表有20个维度,那么事实表PK是否必须针对这30个属性进行合成?
答案 0 :(得分:3)
这是一个好习惯,因为它有助于确保所有事实都引用现有的维成员,并可以提高某些DBMS的性能,但是与其他任何设计/方法一样,这不是强制性的。
事实表的复合键实际上是recommended practice by Kimball的维度建模方法,即:
在大多数环境中,此组合键足以作为主键 事实表的关键。通常,分配一个 在逻辑级别上替代事实行的键,因为我们有 已经定义了使事实表行唯一的原因。