5

我正在尝试为从多个表中采购的客户偏好建立一个维度。

源表示例如下:

在此处输入图像描述

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

现在我的问题是:为每个首选项表设计维度是否好,我是否应该将客户的所有首选项属性放入一个单独的维度表中,如下所示:

在此处输入图像描述

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

如果将来业务引入更多偏好并希望包含在维度中怎么办。然后我必须将这些属性以及使唯一的键带入上表。

是按照偏好做单个维度还是将所有维度合并到一个大维度中更好。

请提出建议。

编辑:

根据我的阅读,我了解到我必须在我的 Customer Dim 和其他 Customer Preference 维度之间设计一个桥接表。

我的计划是为每种偏好类型和所有组合创建 CustomerPreference Dimension。并将这些映射到一个可以有多对多客户偏好关系的桥接表中。

示例如下

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

在此处输入图像描述

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

在此处输入图像描述

编辑:27-03-2013

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

在此处输入图像描述

4

2 回答 2

4

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

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

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

  1. 事实表代表什么
  2. 如果偏好与事实或客户相关
  3. 如果一个客户(或事实?)最多有 3 个偏好(营销、平台和流派),或一个未定义的数字(例如 3 个营销偏好、10 个平台偏好、2 个流派偏好)
于 2013-03-26T12:46:26.513 回答
0

对于客户偏好,您已经获得了可怕的“实体-属性-值”模型,因为开发人员认为在添加新偏好时不必更改数据库,从而使他们的生活“更轻松”。当然,这会让你的生活变得更加艰难。

我目前在类似的情况下工作,并且发现建模客户偏好的最简单方法是使用属性桥表,正如您自己发现的那样,尤其是当它确实是多对多时。

需要问的真正问题是将对这些偏好进行什么样的分析?如果您只是要根据偏好过滤客户,然后与那组客户一起了解事实,那么多对多桥应该可以解决问题。

于 2013-03-26T23:44:51.170 回答