我有商店维度和客户维度,它们都有位置信息。
我应该创建位置维度来关联商店位置和客户位置吗?我相信这个叫做雪花模式。听说很难保养。
|----------| |---------| |----------|
| Dim_Cust | ----- | Dim_Loc | ----- | Dim_Shop |
|----------| |---------| |----------|
或者,我应该保持商店和客户维度符合每个位置字段的定义吗?对于这个,我将位置信息非规范化到每个维度。
|----------| |----------|
| Dim_Cust | ----- | Dim_Shop |
|----------| |----------|
这更像是一个支腿尺寸。您可以使用 Kimball 方法(星型模式,而不是雪花模式)来执行此操作,但它确实会增加数据模型的复杂性(当您在另一个维度中有日期时,通常会发生日期维度)。
我只是将位置信息添加到商店和客户维度。如果您想围绕哪些顾客访问了哪些商店进行复杂查询,您可以创建一个非规范化的顾客/商店维度,其中包含每个使用过的顾客和商店组合。这将使查询更容易——这是一个好的数据仓库将提供的。希望这可以帮助。
这里有一些关于支腿尺寸的东西。 http://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/outrigger-dimension/