系统快照存储的优缺点分析
温馨提示:
本文最后更新于 2025年03月03日,已超过 95 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
名词解释
首先这里的快照定义区别于数据库本身的快照意义,这里的快照指的是用户操作某个特定任务后生成并存储的固化数据,只记录此时此刻业务所显示的形态,此数据固化后不受后续任何数据影响,此数据称为快照。
作用
快照为了记录某时刻真实数据,使其不因后续数据变更而影响,特别是相关联的基础数据变更。
场景
- 财务对账需要
- 售后维护
- 合同与系统数据一致性
- 法规要求等
示例
- 产品表字段包括:ID、编码、名称、型号......,系统中存在产品包括:产品A、产品B,系统中将其分别命名为“产品A”、“产品B”;
- 此时该产品A发生一笔业务,快照不仅记录了该产品ID,同时将此刻产品其他相关信息也记录在内,业务详情显示此刻该业务关联的产品编码及名称
- 某天,某个业务人员将产品名称由“产品A”改为“产品AA”,由于快照记录了当时业务发生时的产品信息,产品详情页仍然显示为产品A,而新业务详情页显示为产品AA
问题
产品名称变更后,业务人员发现某些业务关联产品名为“产品A”,但在产品目录内找不到对应产品信息,于是对此提出疑问,作为开发人员小B对此整理并做出解释。
思考
从代码、开发角度来说,上述并不存在任何问题,只是系统、产品设计逻辑问题,目的是为了体现业务当时的原始形态,使其不因后续数据变更而改变。
从新用户使用角度来说,由于产品体现在不同功能页面显示可能不同,特别是不同系统逻辑不一致时, 对于系统理解存在一定困难,容易犯迷糊。且由于业务详情页显示为产品A使其难于当前实际产品(特别是名称变更较大时)进行关联。
对于系统是否有必要存储数据快照要充分评估,根据实际情况判断系统是否需要快照以及显示实时产品名称还是显示快照数据;
对于产品这种基础数据变更后,为了更好体现业务当时数据与当前数据关系,可在页面显示业务发生时刻产品名称及当前实际产品名称,这样既能体现业务发生时刻产品信息,也能体现现在产品信息。
正文到此结束
- 本文标签: 随笔
- 本文链接: https://www.58cto.cn/article/111
- 版权声明: 本文由程序言原创发布, 非商业性可自由转载、引用,但需署名作者且注明文章出处:程序言 》 系统快照存储的优缺点分析 - https://www.58cto.cn/article/111