【问题标题】:Dimensional Modeling event Hierarchy维度建模事件层次结构
【发布时间】:2021-12-11 06:50:05
【问题描述】:

在我目前的世界中,雇主可以根据股票计划向员工授予股票。不仅股票,其他类型如限制性股票单位等也可以授予。每个授予记录都有自己的属性(授予的数量、授予时的公平市场价值等)。每条Grant记录都有多个归属信息(例如:授予的100股中,2021年可归属50股,2022年可归属30股,2023年可归属20股)。最后,每条归属记录可以有多个“计划分配”记录(即,在 2021 年的 50 条归属中,20 条可以在 2021 年 12 月行使,20 条在 2022 年 1 月行使,剩余在 2022 年 2 月)。所以层次结构看起来像这样: 员工 -> n 赠款 -> n 归属 -> n 计划分配

想知道对此进行维度建模的规定方法是什么?

选项#1:将赠款、归属、计划分配视为单独的维度,并有一个单独的不实事实将所有这些与员工相关联(但这里的问题是,它们是否可以被视为独立维度,因为孩子不能存在/毫无意义没有父母)

选项#2:仅具有计划分配事实并将授予和归属合并到该事实中(如 kimball order-orderline 概念)。因此,员工和雇主将是唯一的维度(缺点 - 如果在其他事实中单独需要赠款和归属怎么办?)

选项#3:将授予、归属、计划分配视为单独的维度,通过使用从父级到子级的自然键将它们关联起来,但也有单独的无事实的事实来关联每个维度的暗键以进行时间点分析

数据库:雪花云

提前致谢 苏尼尔

【问题讨论】:

  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。

标签: data-modeling data-warehouse dimensional-modeling


【解决方案1】:

你从错误的方向接近这个。维度模型基于您希望能够回答的业务问题,而不是您在源系统中碰巧拥有的数据及其结构。

因此,您需要定义要报告的度量及其粒度(这将为您提供事实)以及您要用于过滤和汇总事实的实体(这将为您提供维度)。

一旦您掌握了这些信息,设计模型就会变得更容易(尽管不一定容易!),并且问题的答案会变得更加明显,或者可能变得无关紧要。

【讨论】:

  • 您好 NickW,感谢您的回复和教育。我们不是从源代码的角度来看它。分析需求很多。仅举几例,我们服务的使用自助服务报告的雇主应该能够运行一般分析,例如在给定期间有多少赠款,在一段时间内有多少归属,有多少即将归属,什么类型的分配(检查vs EFT)是相关的等等。所以我想知道什么时候有 4-5 级子表有没有最好的方法?
  • 我还错过了他们可以在需要时深入到个人参与者级别
  • 没有通用的最佳方法或正确的解决方案。你如何设计你的模型需要基于你对你的业务等的完整需求集——显然你不能在这样的网站上发布。即使可以,您实际上也会要求某人为您进行维度建模,这不太可能发生
  • 谢谢 NickW
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-23
相关资源
最近更新 更多