多对多维模型

问题描述 投票:1回答:1

民间,

我有一个称为DIM_FILE的尺寸表,其中包含我们从客户那里收到的文件的信息。每个文件都有构成我的FACT表CUST_DETAIL的详细记录。在主要过程中,文件经历几个阶段,每个阶段都为其标记一个状态。简而言之,我有多对多的关系。关于星型模式尺寸建模的任何想法。客户记录仅属于一个文件,一个文件可以具有多个状态。

FACT
----
CustID
FileID
AmountDue


DIM_FILE
--------
FileID
FileName
DateReceived

FILE_STATUS
-----------
FileID
StatusDateTime
StatusCode
database-design data-warehouse dimensions
1个回答
2
投票

您可以做一些事情来将其与尺寸模型/星型模式结合使用:

  1. 构建两颗星(可能最终会出现在不同的数据集市中)。一个以FACT作为事实表,另一个星以FILE_STATUS作为事实(您可以将其视为事务粒度的事实表)。为了使这项工作有效,我可能也要进行反规范化并将CustId也添加到FILE_STATUS。
  2. 由于正在处理FILE_STATUS,因此可以将FACT转换为累积快照事实表。在此模型中,FACT中将有单独的一组额外的列,以记录属于每个状态转换的所有信息。至少,您需要在日期/时间维度上添加一列,以记录何时达到特定状态。在ETL中,您必须更新事实表以记录文件如何通过状态进行进展。仅当状态数有限且相对较小时,此设计才有效。此外,状态进度的路径应该或多或少清晰(例如客户订单:已收到->拣配->包装->发货->已付款)
  3. 为状态创建一个所谓的多值维度:FACT将获得此新维度的键,而该新维度实际上将代表适用于FACT表中一行的状态的集合。
  4. 您可以有一个过渡表(尽管我不确定这并不适用于此主题)

参考:

累积快照:http://blog.chrisadamson.com/2007/03/accumulating-snapshot-use-accumulating.html

多值维与桥表:http://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/multivalued-dimension-bridge-table/

© www.soinside.com 2019 - 2024. All rights reserved.