尺寸建模

Sre*_*har 5 data-warehouse dimensional-modeling sql-server-2012

我正在尝试为多个表中的客户首选项构建维度.

源表的示例如下:

在此输入图像描述

我已经建立了Dim Customer,现在我必须设计Customer Preference Dimension.新的维度将是SCD1; 始终拥有客户的最新偏好.但是给定的客户可以有多种组合.

现在我的问题:为每个Preference表设计维度是否好,我应该将客户的所有Preference属性都放到一个Dimension Table中,如下所示:

在此输入图像描述

突出显示的列将使客户具有独特的偏好.*客户可以有多个偏好.

如果在未来的业务中引入了更多的偏好并希望包含在维度中,那该怎么办 然后我必须在上表中提供这些属性以及使其独特的键.

最好是按照偏好做单个尺寸,还是将所有尺寸合并为一个大尺寸,如上所述.

建议请.

编辑:

在我阅读之后,我了解到我必须在我的Customer Dim和其他Customer Preference Dimensions之间设计一个桥接表.

我计划的是为所有组合创建每个首选项类型的CustomerPreference维度.并将这些映射到桥接表中,其中可以具有多对多的客户偏好关系.

示例如下

这是正确的做法还是有任何最佳做法.

在此输入图像描述

[或]这是正确的方法吗?

在此输入图像描述

编辑:27-03-2013

根据Pondlife的建议,我将采用Snowflake方法,如下所示:

在此输入图像描述

Pon*_*ife 4

您还没有提及有关事实表的任何内容,这可能是决策的关键因素。如果偏好仅适用于客户并且与事实完全无关,那么您可以使用雪花模型添加仅链接到客户维度的客户偏好表。

但你提到“每个偏好的个人维度”,这表明偏好可能与事实直接相关。在这种情况下,如果每个事实的可能偏好数量有限(从您提供的信息中并不清楚),包含所有可能的偏好组合的迷你维度可能是更好的选择。

如果这没有帮助,我建议您澄清以下几点:

  1. 事实表代表什么
  2. 如果偏好与事实或客户相关
  3. 如果一名客户(或事实?)最多有 3 个偏好(营销、平台和流派),或数量未定义(例如 3 个营销偏好、10 个平台偏好、2 个流派偏好)