最近组里的小伙伴对一条数据进行流程审批,不同角色看到同一条数据状态不同,并且要记下审批流程,结果发现小伙伴在设计数据库的时候在一条数据中加了状态字段status,用1标记到10,分别代表不同状态,最后前端判断不过来,懵逼啦~~~~
在这里我总结下,列如:业务部门business(提交),质检部门quality(审核),审核组audit(终审)
第一种方案:
在创建业务表的时候,添加3个字段,分别代表business、quality、audit状态,例如:
business状态可以分为:0-待提交 1-审核中 2-审批通过 3-审批驳回
quality状态可以分为:0-待审核 1-通过 2- 驳回
audit状态可以分为:0-待审核 1-通过 2- 驳回
但是这样不好扩展,中间要是加一级,表和业务代码都要重新编写
第二种方案:
在创建业务表的时候,在创建一个状态表,其中一个字段记录业务表id,一个字段记录角色,当生成一条业务数据后,自动插入一条business角色状态数据,当business角色提交数据后,自动插入一条quality角色状态数据,依次类推就行。这种方式便于以后业务扩展。
针对流程记录,也要新建一个流程表,单独记载每个角色操作的状态,然后根据时间排序,自然可以取出审批流程记录。
个人偏向第二种设计,工作中使用比较方便,而且不会乱,根据不同角色直接把数据返给前端,。如果其他小伙伴有更好的方案,也可以一起交流下~~~~