递归层次结构与桥接表的深入解析
1. 扁平化层次结构的特点与问题
在数据处理中,有时会遇到具有明确且易于区分的命名层次,这些层次之间存在一致的关系。当对层次结构进行扁平化处理时,用户可以使用现有的词汇来引用每个层次,而非使用“层次编号”。这样虽然仍需要进行回填操作,但能更方便地从特定位置向下查看事实数据。
以零售连锁企业为例,其使用位置维度来确定商品的接收、存储和销售地点。该维度有三种明确定义的位置类型,它们始终遵循标准的父子关系:商店由仓库供货,仓库由配送中心供货。在扁平化的位置维度中,表的每一行将包含商店名称、仓库名称和配送中心名称,而非 level_1、level_2 和 level_3。不过,仍需进行回填操作,例如,配送中心需要在仓库名称和商店字段中填写自身名称。
这种扁平化解决方案在报告方面表现较好,因为人们习惯将商店、仓库和配送中心视为不同的事物,这些属性有助于向下查看事实数据。然而,这种理想情况非常罕见,实际中往往存在破坏理想状态的例外情况。例如,靠近配送中心的商店可能直接由配送中心供货,绕过了通常的仓库层级;某些特别大的区域可能有多个层次的仓库。这种层次结构被称为不规则层次结构,因为它没有固定数量且含义明确的层次。
2. 层次结构桥接表的引入
层次结构桥接表能够让用户在递归层次结构中向上或向下研究事实数据,而无需将分析限制在预设的层次数量,也无需进行繁琐的回填操作。它可以轻松选择层次结构中的任何点,对其下方或上方的事实数据进行聚合,且无需使用过程逻辑或相关子查询。
但桥接表也存在一些缺点。与第 9 章中的维度桥接表类似,层次结构桥接表可能会被错误使用,从而导致重复计数的问题。此外,将桥接表与其他表连接
超级会员免费看
订阅专栏 解锁全文
16

被折叠的 条评论
为什么被折叠?



