【发布时间】:2013-03-29 13:05:56
【问题描述】:
我们确实有各种各样的客户 - 其中大多数是个人,但也有一些是公司。这两个组都共享相同的事实集,但是它们的维度属性不同(示例):
Person
FirstName
LastName
BirthDate
Sex
Region
City
Company
Name
RegistrationNumber
Region
City
将个人和公司都包含在一个维度中是个好主意吗?
Customers
FirstName
LastName
BirthDate
Sex
Name
RegistrationNumber
Type (Person,Company)
值得一提的是,也有自雇客户——在这种情况下,他们具有个人和公司的所有属性。
如果我使用两个维度,这将使所有分析内容变得更加困难,因为大多数时候我对这两个组都感兴趣。另一方面,如果我只使用一个维度,将会有很多默认值。我检查了“数据仓库工具包”,但没有找到相关信息。
我的问题 - 我应该创建两个表、一个表还是使用完全不同的方法来设计数据仓库中的客户维度?
【问题讨论】:
-
子类型/超类型的一个例子,参见,例如,这里:basicofcomputer.com/supertypes_and_subtypes_entities.htm
-
@koriander 实际上我们的生产系统就是这样处理的。你在数据仓库中使用这种设计吗?
-
我想这取决于您的特定数据仓库,但通常具有分层维度,并且不同级别的维度可以具有不同的属性。恐怕我没有太多的经验可以和你分享,我只能建议检查你的 OLAP 系统的功能。
标签: database-design data-warehouse