Power BI 星(星座)架构:2 个彼此之间存在关系的事实表

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

我需要创建一个数据仓库来分析订单流程中的数据,但我不确定如何继续,因为我的研究导致了信息冲突。为简单起见,我将仅使用最重要的表格来描述我的问题。

Tbl订单(事实)

  • 客户下订单后,它会在 TblOrder 中创建一个条目。

  • 每个条目都是唯一的,并且有一个OrderNo以及它自己的创建时间戳

TblOrderSubProcess(事实)

  • 一个订单至少由1个子流程组成。

  • 订单的每个子流程都是 TblOrderSubProcess 中的唯一条目,并且具有自己的创建时间戳。

  • 每个子流程包含一列,其中包含 OrderNo

  • 只有仓库中有足够的材料才会进行录入

  • 在仓库之间移动物料(用于存储管理)也是一个子流程,但具有 OrderNo = null

TblOrderInformation(维度)

  • 此表包含有关子流程应如何执行的信息(例如:位置A → 位置B、材料、预期时间等)

星型模式是 Power BI 中的最佳实践,我不应该在 TblOrderTblOrderSubProcess 之间创建关系,但会有需要两个表之间关系的视觉效果。

我的解决方案是创建一个平面表,其中我TblOrder LEFT JOIN TblOrderSubProcess。这个解决方案有效,但有缺陷:

  • 如果我创建日期切片器,它将始终使用 Order 或 OrderSubProcess 的日期。这意味着我的 Power BI 报告只能包含 Order 或 OrderSubProcess 的信息

  • 加入表格会造成冗余

    • 我仍然需要一个单独的表来存储由于存储管理而创建的所有 OrderSubProcesses,因为我会在 LEFT JOIN 中丢失这些条目(因为 OrderNo = null)
  • 创建的平面表会非常大,最初有 30 列。柱子会随着时间的推移而增长。

我的目标是一个解决上述问题并遵循最佳实践的数据模型

powerbi data-warehouse star-schema fact-table
1个回答
0
投票

这听起来与订单标题 - 订单行数据建模问题非常相似。 Kimball 小组在下面写了一篇关于此的博客文章。 https://www.kimballgroup.com/2007/10/design-tip-95-patterns-to-avoid-when-modeling-headerline-item-transactions/

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