举个例子,假设我有一个包含两个维度和一个度量的事实表
事实货币表
项目密钥 int
PersonKey 整数
现金金额
两个维度的定义如下:
DimProject(0 型维度 - 即静态)
项目密钥 int
项目名称 varchar(50)
DimPerson(第 2 类缓慢变化的维度)
PersonKey 整数
PersonNaturalKey int
人名 varchar(50)
有效开始日期日期时间
有效结束日期日期时间
是当前位
到目前为止非常简单。现在我将介绍一个人员类别的概念。
昏暗类别
类别键 int
类别名称 varchar(50)
并在 DimPerson 和 DimCategory 之间建立 M2M 关系
桥人类别
PersonKey 整数
类别键 int
所以 - 人们可以有 1..n 个类别。
我的问题是 - 由于人是一个缓慢变化的维度,当一个人的名字发生变化时,我们添加一个新的人行并更新我们的有效日期和当前标志,没什么大不了的。
但是我们如何处理此人的类别呢?每次弹出新的个人版本时,我们是否需要向桥接表添加更多行?
作为推论,如果一个人的类别发生变化,是否意味着我们需要在人员表中创建一个新行?
关于您的主要问题:我想说您需要在类别表中添加类别(可能是从老人行复制它们)。这样你就可以继续对新的(改变的)状态下的人进行分类。
关于类别的更改:我不想添加人员行,而是在类别表中添加初始有效期和到期日期。这样每个类别都可以独立更改。但您需要小心不要进行时间点查询,因为您可能会过多计算类别
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)