点击↑上方↑蓝色“编了个程”关注我~
这是Yasin的第 83 篇原创文章
最近业务上用到比较多的多版本场景。这里总结一下多版本业务模型设计的思路。
多版本需求梳理
先梳理一下多版本的一般诉求:
同一个数据经过多次编辑后,会产生多个版本,其中历史版本不能删除掉,因为可能有上下游在使用;
多版本通常用于配置中,最新一个版本的配置通常可以多次修改、测试,确定后再发布;
已经发布的历史版本不能随便修改,因为有数据在使用;
在消费侧,一般默认是使用最新已发布的版本;
多版本可能会有发布审批、与上一个版本的diff等需求场景;
多版本状态机设计
一个多版本的业务模型,通常会有以下的状态机。其中“废弃”不是必须的,回滚操作也不是必须的(回滚操作会给代码和表设计带来很大的复杂性),发布中间可能会有发布中、审批中等状态。
草稿可以在原版本编辑,但已发布的数据再编辑,就会生成一个新版本的草稿。
![3a79dc3b8f0f2f52557c5c38b4d6e876.png](https://i-blog.csdnimg.cn/blog_migrate/107cb7aae36944317541625d06b4fab0.png)
有时候也会有下线操作,这个时候所有版本的状态就会被改为“已下线”。
多版本表设计
对于多版本而言,你需要有一个唯一标识这个