0

我有一组 OLAP 多维数据集,以雪花模式的形式,每个代表一个工厂。

我有三个概念,对于某些工厂而言,它们显然表现为 3 维,而对于其他工厂而言,它们显然表现为 2 维。

概念始终相同:“产品”、“销售代理”和“客户”。

但在某些情况下,我怀疑是否应该将其建模为纯 3 维立方体,或者我应该对 2 维立方体进行一些调整或技巧。

案例 A 和 B 对我来说是清楚的,而案例 C 是让我产生疑惑的案例。

案例 A:显然是一个 3 维立方体

任何代理商都可以向任何公司出售任何产品。多个代理共同负责同一组客户。

我将此案例建模为:

在此处输入图像描述

案例 B:显然是一个二维立方体

每个代理都对一组客户“负责”,他可以销售任何产品,但仅限于他的客户。分析是针对“当前对投资组合的责任”进行的,因此如果代理离开公司,他的所有客户都将重新分配给新代理,并且客户唯一属于新代理。

我将此案例建模为:

在此处输入图像描述

案例 C:我的疑惑

可能已为客户分配了一个代理或一组多个代理,每个代理负责一个 ProductCategory。

例如:

  • Alice管理TablesAndWoods ltdGreenForest ltd
  • Bob管理Chairs ltdFastWheels ltd
  • CarolForniture ltd仅管理ProductType = 'machinery'并且还管理FrozenBottles ltd任何类型的产品。
  • Dave还管理Forniture ltd但仅针对ProductType = 'consumables'并且还管理HighCeilings ltd任何类型的产品。

问题:

在此示例“案例 C”中:

customer和是agent独立的维度,因为与和Forniture ltd都有关系,所以它是一个 3D 立方体?CarolDave

或者它是一个二维立方体,agent它不是一个独立的维度,而是产品聚合器customer以某种方式“调节”的ProductCategory聚合器?

我想看看你会如何建模。提前致谢。

4

1 回答 1

2

这是我将如何建模它:

您的事实表是销售。

您的维度(可能)是日期、产品、客户和代理。这与您的案例 A 最接近。

将雪花(白色实体)折叠成维度。这些实体的存在表明您应该考虑是否需要类型 2 缓变维度进行实时分析。

考虑一个 Bridge 表来捕获 Agent 和 Product 之间的多对多关系。

于 2015-04-25T11:28:25.587 回答