我有一组OLAP多维数据集,以雪花模式的形式,每个都代表一个工厂。
我有三个概念,一些工厂明显表现为三维,而其他工厂显然表现为二维。
概念总是相同的:“产品”,“销售代理”和“客户”。
但是对于某些情况,我怀疑是否应该将其建模为纯粹的三维立方体,或者我应该使用二维立方体进行一些调整或技巧。
案例A和B对我来说是明确的,案例C是产生我的奇迹的案例。
案例A:显然是一个三维立方体
任何代理商都可以向任何公司出售任何产品。对于同一组客户,可以使用多个代理商。
我将此案例建模为:
案例B:显然是一个二维立方体
每个代理商都对客户组合负有责任,他只能向客户销售任何产品。分析是“当前对投资组合的责任”,因此如果代理离开公司,他的所有客户都会被重新分配给新代理,而客户唯一属于新代理。
我将此案例建模为:
案例C:我的疑惑
可能已为客户分配了一个代理商或一组代理商,每个代理商负责一个ProductCategory。
例如:
Alice
管理TablesAndWoods ltd
和GreenForest ltd
。Bob
管理Chairs ltd
和FastWheels ltd
。Carol
仅为Forniture ltd
管理ProductType = 'machinery'
,并为任何类型的产品管理FrozenBottles ltd
。Dave
还管理Forniture ltd
,但仅限ProductType = 'consumables'
,并且还管理HighCeilings ltd
任何类型的产品。问题:
在此示例中,“案例C”:
customer
和agent
个独立尺寸是因为Forniture ltd
与Carol
和Dave
有关系,所以它是3D立方体吗?
或者它是一个2D多维数据集,其中agent
不是一个独立的维度,但它是由customer
产品聚合器以某种方式“调节”的ProductCategory
聚合器?
我想看看你如何塑造这个。 提前谢谢。
答案 0 :(得分:2)
以下是我的模型:
您的事实表是销售。
您的尺寸(可能)是日期,产品,客户和代理商。这最接近你的案例A.
将雪花(白色实体)折叠到尺寸中。这些实体的存在表明您应该考虑是否需要2型缓慢变化的维度进行及时分析。
考虑使用Bridge表来捕获Agent和Product之间的多对多关系。