我最近在事实表上遇到了“有效自”和“有效至”列。显然,这对于维度来说很常见,但我之前没有在事实表上看到它们,也找不到任何表明它们被广泛使用的信息。
表粒度与银行账户交易类似,因此在进行存款或提取金额时会生成一个新事实。包含这些列的原因是需要一致的报告(如果我们今天运行此报告,它必须与一周前相同)以及源系统/数据质量差;用户可以进入源系统并说“这笔押金实际上只有 10 英镑,而不是 100 英镑”。发生这种情况时,会插入第二个事实行并且原始行已过期。
在我看来,应该插入一个新的事实行来反转原始数据,以维护历史记录(在示例中应用 -100 英镑),并且应该插入更新的事实(+10 英镑)。感觉就像使用有效的 to/from 列在报告时给用户带来了太多的复杂性以及错误的风险(总结了活动和过期的事实)。
有没有人有这方面的经验,是否有任何专门涵盖它的参考资料(博客文章、文章甚至书籍)?