我有描述 [events] 和 [event_segment] 和 [event_staff] 的事实表。
[events] 由许多 [event_segment] 组成 - 例如“introduction”、“pre-check”、“1st stage”、“2nd stage”等。[events] 的键(即粒度唯一 ID)是 [event_ref],但是 [event_segment] 的键(即唯一标识符)是复合的 - [event_ref] 和 [segment_order]
[event_staff] 对 1 个事件有很多人员,因此唯一 id 是 [event_ref] 和 [staff_id] 的组合
有几个一致的维度 - 例如日期、位置等。
我正在努力决定该数据的模型,因为我希望能够轻松比较 3 个表中的汇总事实,特别是在报告中。即 count([staff]) vs sum([event_segment_duration]) where [staff_type] = 'basic' and [event_segment_type] != 'clean up'
因为有很多员工参加一个活动,一个活动有很多部分,但我无法将员工与我必须在 [event_ref] 上分组的部分联系起来。
这“有效”,但它是否算作违反 Kimball/数据仓库标准,因为它正在加入(很好地分组)事件?
此外,[event_ref] 是否应该存在于 [event_segment] 表中,因为它应该是代理键,因此不能用于分组?