需求:
在日常开发过程中,经常会遇到这样的需求,需要保存草稿或者改变数据以后需要审核,这个时候就会出现一下几种场景:
1.待审核数据和审核通过数据同时存在
2.审核不通的数据和审核通过的数据同时存在
状态流转如上图,这个时候需要思考如下问题:
1.存一条数据,这么解决上面的问题?
先说说我这两天的总结,存一条数据,是可以解决上面的问题,但是适合单表操作,设计如下:
字段中添加一个快照字段,用来存储当前这条数据的快照,用json格式
1.先创建一条数据,为待审核数据,并更新当前这条数据的快照字段(为了以后查询方便)
2.审核通过,快照数据覆盖当前数据,然后,删除快照数据
3.审核失败,有两种场景,第一种是审核通过以后,再修改,这个时候审核失败,不能影响已审核的数据,只对快照数据进行操作
第二种场景创建以后,审核失败,这个时候可以修改当前数据和快照数据
2.存多条数据,状态流转,效果和上面一样,但是数据是多条,这样做适合查询和有多个表的数据
1.先创建一条数据,为待审核状态
2.审核通过,复制待审核数据,新建一条,状态为审核通过,原有待审核状态数据可以删除,也可以改为审核历史数据
3.审核通过以后修改,新建一条,改为待审核
4.审核失败,把待审核数据改为审核失败
5.审核失败修改,把数据改为待审核
数据审核,通过以上两种方式,基本可以解决,剩下的就是具体的问题具体分析了