事实和维度表:一对一的关系

时间:2012-06-25 23:15:02

标签: database-design data-warehouse business-intelligence

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

举例来说:

Fact_UserData

  • 用户ID
  • 位置ID
  • 职业ID
  • 一堆可以有意义地汇总的数字数据

Dim_User

  • 用户ID
  • 性别
  • 种族

Dim_Location

  • 位置ID
  • 国家

Dim_Occupation

  • 职业ID
  • 职业名称

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

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

作为对职业维度问题的概括,处理尺寸只有两个字段的情况的最佳实践方法是什么:ID和名称? (可以将其视为典型的Customers维度,期望它只有客户ID和客户名称字段。)假设维度有10个以上的条目,并且没有任何层次结构。

1 个答案:

答案 0 :(得分:1)

好吧,考虑到一个人可以改变职业和位置,我也希望在事实表中有一个DateKey。如果您将职业和/或位置拉入用户维度,您将最终得到类型2维度,因此必须跟踪那里的时间变化。 将维度与Key, BusinessKey一起使用没有任何问题 - 随着时间的推移,事情会发生变化,你最终会添加一些内容。