【问题标题】:Data Warehouse Design for People not Products面向人而非产品的数据仓库设计
【发布时间】:2017-06-28 15:55:11
【问题描述】:

我了解,对于产品、订单和该类型的数据,建议使用事实和维度的星型模式。

是否有推荐的方式从月度报告中获取model facts about people,例如跟踪一段时间内的进度,person 可能会在几个月之间更改状态(progressing, Absence, Completed, NewPerson),并且该人将与多个mentors 相关联,这也可以报告之间的变化。

  • 我是否可以为每个state 和每个mentor role 提供一个dimension 表,并记录事实的真实日期。
  • 我需要 2 个事实表吗? 1 个给个人,另一个给导师?
  • 其他数据如何适应预期结束日期

【问题讨论】:

  • 嗨 Mobcdi .. 在我发布答案之前的一个快速问题.. 您可能要跟踪的业务活动是什么.. 例如:它会类似于:一个人的职业发展在一段时间内??
  • 这是一个很好的例子。人可能会更换部门,有不同的经理或离开公司。经理也可以离开。

标签: database-design data-warehouse dimensional-modeling fact


【解决方案1】:

根据我们在 cmets 部分讨论的示例,您可以拥有以下数据集市。

事实表:

一个记录人们移动活动的事实表(我刚刚选择了一个名字) Fact_People_Move

请考虑您希望如何记录“业务活动”,然后决定它是交易事实还是快照事实。

有关 Kimball 的不同事实表的更多信息: http://www.kimballgroup.com/2008/11/fact-tables/

维度表:

保存员工详细信息的表格: Dim_Employee 这张桌子可以扮演员工和导师的角色,因为导师可以是员工自己。

保存日期的表格: 昏暗日期

保存地址的表(仅当您想记录地址时): Dim_Address

用于保存组织部门/部门的表格: Dim_Division

可能还有很多其他的暗点,可能还有其他事实(如果您想记录更多的业务活动)。

【讨论】:

  • 当你谈到日期维度表时。您是指发生事实(升职、降职、离职)的日期还是其他事情的日期
  • @mobcdi 你通常会生成一个通用的日期维度,互联网上有很多关于这件事的内容。您将它作为参考存储在事实表中,以达到一定的精度。书籍建议在事实表本身中存储事实发生的确切时间的时间戳。
  • 谢谢卡米尔 .. 嗨 Mobcdi.. 是的..任何你想记录的日期。
  • 每个日期一行,描述有关日期的所有内容。然后,您的事实指的是适用于他们的日期。这不仅仅是事实使用的日期 - 它也是其他日期。
猜你喜欢
  • 2011-11-27
  • 1970-01-01
  • 2014-02-12
  • 1970-01-01
  • 1970-01-01
  • 2018-08-27
  • 1970-01-01
  • 2011-07-30
  • 2017-07-19
相关资源
最近更新 更多