如何处理具有类似属性的维度?

时间:2017-05-18 21:27:49

标签: database-design dimensional-modeling datamart

我的数据集市中有以下实体:

  • 位置:包含国家,城市等信息
  • 用户:包含有关用户的信息,包括他们的地址, 其中包括国家和城市

这两个维度都包含有关国家和城市的属性。仅在位置维度中存储属性会更有意义,因此我们不会复制数据,并且我们可以通过事实表将表格代理键连接在一起来检索用户的位置信息。但是,这样做会增加开销,因为我们需要执行多个连接。

我对维度建模和数据仓库缺乏经验,所以我不知道哪个是更好的做法:

  1. 让两个维度包含相同的属性
  2. 将属性放在它所属的表中(在本例中为 位置维度)

1 个答案:

答案 0 :(得分:0)

选项1更接近Kimball方式。维度建模没有优先考虑避免重复数据。在这种情况下,他们认为数据属于'多个表。用户拥有有关其地址的信息,以便有关用户的信息属于用户。

重要的是,数据符合字段的命名和内容的性质 - 由您负责ETL / DW负责人的工作以确保这是事实

很多人选择选项2.这样,我不知道你事实的本质(所以我可能错了)但听起来好像你想知道用户的位置你从维度而不是事实中得到一把钥匙 - 这将是一个雪花'结构体。这些并不总是错误的,但是不允许您充分利用维度模型。