1.固定层级维度
河北省 | 唐山市 | 滦南县 | |
北京市 | 北京市 | 海淀区 |
处置方式:从最细的层级对其, 如果层数不相等,用细粒度的数据补齐。
当然,客户觉得海淀区和唐山市应该评级,那就这样:
河北省 | 唐山市 | 滦南县 |
北京市 | 海淀区 | 海淀区 |
想怎么看数, 就给什么维度。
优点:简单
缺点:事实表只能关联最细粒度, 如果要关联其他粒度,不能处理。
2. 非固定层级维度
假设财务科目: c0, c01, c02, c0101, c0102, c010101。
按编码有父子关系, 层级不固定,高度不固定, 任何科目都可能发生财务事件。
尤其任何科目都可能发生财务事件, 就不能采用上面的固定层级方式了。
父科目 | 子科目 | 距离 | ||
c0 | c0 | 0 | ||
c0 | c01 | 1 | ||
c0 | c02 | 1 | ||
c0 | c0101 | 2 | ||
c0 | c0102 | 2 | ||
c0 | c010101 | 3 | ||
c01 | c01 | 0 | ||
c01 | c0101 | 1 | ||
c01 | c0102 | |||
c01 | c010101 | 2 | ||
c02 | c02 | 0 | ||
c0101 | c0101 | 0 | ||
c0101 | c010101 | 1 | ||
c0102 | c0102 | 0 | ||
c010101 | c010101 | 0 |
子科目关联事实表, 父科目关联科目维度表。
优点: 功能强大
缺点: 加工复杂, 使用复杂。 很容易重复计算。
重复计算: 看上面和事实表关联的子科目就能看出来, 子科目是重复的。
比如要分别计算 c0 和 c01 的合计值,这没问题。但是在想把这个合计值累加起来,就重复计算了。
比如要算c0+c01的合计值,这不行,得先对这俩科目的子科目进行去重,然后再关联事实表。
通过上面表格进行统计时, 每个guoup by 的key 对应的子科目都不能重复, 最后统计出来的结果, 也不一定有可加性。