比较不同粒度的事实表

时间:2013-10-24 20:21:53

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

我有描述[events]和[event_segment]以及[event_staff]的事实表。

[events]由许多[event_segment]组成 - 例如'介绍','预检'第一阶段','第二阶段' [events]的密钥(即粒度唯一id)是[event_ref],但[event_segment]的密钥(即唯一标识符)是复合的 - [event_ref]和[segment_order]

[event_staff]有很多人员参加1个活动,因此唯一身份证是[event_ref]和[staff_id]的合成

有几个一致的尺寸 - 例如日,地点等。

我正在努力决定这个数据的模型,因为我希望能够轻松比较3个表中的汇总事实,特别是在报告中。即count([staff])vs sum([event_segment_duration])其中[staff_type] =' basic'和[event_segment_type]!='清理'

因为有很多工作人员参加活动,很多细分活动,但我不能将工作人员绑定到我必须在[event_ref]上分组的部分。

这'有效,但是它会加入(正好分组)事件,因为它会破坏Kimball /数据仓库标准吗?

另外,[event_ref]表中是否应该存在[event_ref],因为它应该是代理键,因此无法进行分组?

1 个答案:

答案 0 :(得分:0)

我认为你没有违反任何标准。

您刚刚遇到另外两个具有不同粒度级别的事实表。

在我看来,您可以将该细分视为事件的子项,因此您可以考虑事件维度的细分部分。

工作人员只是一个不同的维度(将维度拆分为多个孩子从来都不是一个好主意),而且工作人员维度的最低级别不符合事件1的最低级别。

这是一个普通的真实单词场景,它非常频繁,你可以想象一个足球队,你可以有一些与Player s(孩子)相关的游戏统计数据,其中一些与Team相关联(父母),还有一些其他信息,比如为每个Game(不同维度)销售的门票,这些信息无法与特定玩家相关联,但肯定有更多细节,而不仅仅是Team级别。

相关问题