类型2与另一维度相关的维度更改

时间:2017-07-12 15:36:05

标签: data-warehouse dimensional-modeling

我正在尝试为具有各种类型2维度的招聘数据仓库建模,但我不确定我是否正确地对此特定方案进行建模。这是我到目前为止所做的事情:

我有2个维度: Dim_Person Dim_Client

这两个维度是通过一个无事实的事实表 Fact_PersonEmployer 连接起来的,它包含两个维度的FK,以及有效的起始日期。

如果某人搬到不同的公司,我会关闭将他们与旧雇主联系起来的事实行上的有效日期,并在新公司的事实表中插入新记录。

这看起来非常简单,但是当这个人现在已经转移到新的雇主时,我认为它保证了人员维度的第2类变更,因为这个人现在与用户(招聘人员/招聘经理)根本不同。

从我的角度来看,似乎客户端是人员维度的类型2属性,所以我一直在考虑以这种方式对其进行建模。我不确定在不使用无事实的事实表的情况下将尺寸加在一起是否可以接受(我尽可能地坚持使用Kimball的方法)。

我应该:

a)将他们所在公司的ID作为人员维度中的属性保留,以便生成第2类更改

b)继续使用事实表将两个维度相互关联吗?

希望这是有道理的......

提前致谢!

2 个答案:

答案 0 :(得分:0)

几点:

  1. 将“从”和“到”日期存储在维度表本身中,无需将其存储在Factless Fact表中。

  2. 当一个人移动到另一个商家时,只需要更改维度表,即关闭记录并插入新记录。

  3. 当一个人搬到另一家公司时,您需要清除的东西很少

    1. 您是否想在离开组织后追踪该人?
    2. 记录应该完全关闭吗?
  4. 如果您想保留此人的历史记录和记录,则保留该ID是合适的。

答案 1 :(得分:0)

如果您的事实显示DimPerson& DimClient,你不应该在DimPerson中有任何客户信息。 DimPerson记录不需要改变,因为关系包含在事实中(它应该具有事件的日期/时间)。

但是,如果您认为雇主是雇员的属性,则您不需要Fact表,因为该关系包含在Dim中。在这种情况下,您应该将客户信息非规范化为DimPerson。日期时间将用作维度记录的生效日期和先前活动维度记录的到期日期。

另外,最佳实践要求您的事实表描述事件。我发现名称Fact_PersonEmployer令人困惑。它捕获的事件是什么?这是就业活动吗?