一家门店换了经理后,去年的销售额该算给旧经理,还是今天的经理?这则 Reddit 求助把一个常见却棘手的选择摆到台面上:分析人员目前只关心现任经理和厨师,但业务又想保留历史,以便将来按销售发生时的负责人回看。
在 Kimball 维度建模——把销售事件放进事实表,把门店、商品等描述放进维度表——里,第一步不是决定表名,而是定清事实表粒度,也就是“一行销售究竟代表什么”。提问者考虑在 dim_store 保存现任负责人,再建一张按门店、财年和财周记录经理与厨师的 dim_store_leader。这实际上同时承载了两种口径:按今天的组织关系重算历史,以及按当时关系还原历史。
难点还在于,多家店可以共用同一位经理或厨师。若用桥接表单独保存这种多对多关系,并附生效时间,就能表达任期变化;但汇总销售额时必须防止同一笔数字因多人关联而重复。原帖没有给出最终方案,价值正在于它提醒我们:先明确业务过程、粒度和查询口径,再判断这是缓慢变化维度、桥接关系,还是所谓“无事实事实表”。