3

我正在尝试开发一个合适的 BI 解决方案,其中维度表和事实表具有 1:1 的关系。

举个例子:

Fact_UserData

  • 用户身份
  • 位置 ID
  • 职业编号
  • 一堆可以有意义地聚合的数字数据

Dim_User

  • 用户身份
  • 性别
  • 种族

Dim_Location

  • 位置 ID
  • 城市
  • 状态

Dim_Occupation

  • 职业编号
  • 职业名称

在此示例中,假设 Fact_UserData 和 Dim_User 将始终通过用户 ID 具有 1:1 的关系。

主要让我失望的是 1:1 关系——我应该有一个专用的用户维度还是应该将这些属性合并到事实表中?我对合并犹豫不决,因为根据Kimball的说法,退化维度应该保留给操作控制编号。我也想知道将职业作为一个专门的维度是否有意义——从业务的角度来看,按职业分组是至关重要的,这就是为什么我最初将其作为自己的维度。

作为对职业维度问题的概括,处理维度只有两个字段:ID 和名称的情况的最佳实践方法是什么?(把它想象成一个典型的客户维度,期望它只有字段客户 ID 和客户名称。)假设该维度有 10 多个条目并且没有任何层次结构。

4

1 回答 1

1

好吧,考虑到一个人可以改变职业和位置,我也希望DateKey在那个事实表中也有一个。如果您将职业和/或位置拉到用户维度,您最终会得到类型 2 维度,因此必须跟踪那里的时间变化。仅仅拥有维度并没有错Key, BusinessKey——事情会随着时间而改变,你最终会添加一些东西。

于 2012-06-26T12:00:50.837 回答