0

我们确实有各种各样的客户——其中大多数是个人,但其中一些是公司。这两个组都共享相同的事实集,但是它们的维度属性不同(示例):

Person
 FirstName
 LastName
 BirthDate
 Sex
 Region
 City
Company
 Name
 RegistrationNumber
 Region
 City

将个人和公司都包含在一个维度中是个好主意吗?

Customers
 FirstName
 LastName
 BirthDate
 Sex
 Name
 RegistrationNumber
 Type (Person,Company)

值得一提的是,还有自雇客户——在这种情况下,他们具有个人和公司的所有属性。

如果我使用两个维度,它将使所有分析内容变得更加困难,因为大多数时候我对这两个组都感兴趣。另一方面,如果我只使用一个维度,将会有很多默认值。我检查了“数据仓库工具包”,但没有找到相关信息。

我有问题 - 我应该创建两个表、一个表还是使用完全不同的方法来设计数据仓库中的客户维度?

4

2 回答 2

4

将个人和公司都包含在一个维度中是个好主意吗?

在数据仓库中,是的。信息不会更新,您不关心空列或默认列,查询的轻松(速度)更为重要。

标准化操作数据库中的数据的一个原因是消除更新异常的可能性。当数据存储在多个地方时,它可以在一个地方更新,而不能在另一个地方更新。

于 2013-03-29T15:26:27.737 回答
0

我的理由是你解释的场景,我们可以维护两个维度,实际上可以包含两个键。

Fact may contain PERSON_KEY and CUSTOMER_KEY. So, if it's a person PERSON_KEY can be -1 or if it's other way COMPANY_KEY can be -1. This can be considered if person or company details needs to be used for some other purposes within the system. I think dimension means going to possible granular level.

于 2013-04-02T11:17:44.717 回答