例如,假设我有一个包含两个维度和一个度量的事实表
FactMoney 表
ProjectKey int
PersonKey int
现金金额
这两个维度的定义如下:
DimProject(类型 0 维度 - 即静态)
ProjectKey int
项目名称 varchar(50)
DimPerson(第 2 类缓变维度)
PersonKey int
PersonNaturalKey int
人名 varchar(50)
EffectiveStartDate 日期时间
EffectiveEndDate 日期时间
IsCurrent 位
到目前为止非常简单。现在我将介绍一个人员类别的概念。
昏暗类别
CategoryKey int
类别名称 varchar(50)
并在 DimPerson 和 DimCategory 之间建立 M2M 关系
桥人类别
PersonKey int
CategoryKey int
所以 - 人们可以有 1..n 个类别。
我的问题是 - 由于 Person 是一个缓慢变化的维度,当一个人的名字发生变化时,我们会添加一个新的人行并更新我们的生效日期和当前标志,没什么大不了的。
但是我们如何处理这个人的类别呢?每次弹出新的人员版本时,我们是否需要向桥接表添加更多行?
作为推论,如果一个人的类别发生变化,这是否意味着我们需要在 person 表中创建一个新行?