01
流水:每次变化一行
02
周期快照:每对象每周期一行
03
累计快照:流程节点持续更新
04
组合:事件追溯 + 时点查询
结论:按问题选择,而不是按存储大小
“今天发生了哪些库存变动”需要流水,“昨天闭店时每店库存多少”更适合每日快照。只保存当前值无法回溯,只保存流水则每次查询都要重建状态。
很多经营场景采用流水作为事实依据、快照作为分析加速,并建立两者对账。
流水模型保留变化因果顺序
记录对象、事件类型、发生时间、入库时间、变化量、来源和业务键。迟到、冲正和重复事件需要幂等与版本规则。
流水适合审计和重算,但查询余额要确定起点、事件顺序和缺失处理。
周期快照稳定呈现时点状态
每日或每月为每个对象生成一行,便于趋势和期末对比。必须明确快照时区、截点、未变化对象、空值和补跑规则。
快照生成失败或迟到时不能悄悄沿用旧值,应标记质量状态和重建范围。
累计快照适合有阶段的流程
订单履约、采购和工单可在一行记录创建、审批、发货、完成等里程碑,便于计算阶段时长。
流程重开、回退或多次经过同一节点时,累计快照会丢细节,需要保留事件流水作为证据。
用守恒关系验收两种模型
验证期初余额 + 流入 - 流出 = 期末余额,并抽查跨日、冲正、迟到和补录。比较流水重算与快照结果,差异进入质量队列。
选型工具时检查增量生成、回填、版本、质量标记和历史重算,而不是只看能否创建一张表。
