java mysql 权限状态、流程问题

最近组里的小伙伴对一条数据进行流程审批,不同角色看到同一条数据状态不同,并且要记下审批流程,结果发现小伙伴在设计数据库的时候在一条数据中加了状态字段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角色状态数据,依次类推就行。这种方式便于以后业务扩展。

针对流程记录,也要新建一个流程表,单独记载每个角色操作的状态,然后根据时间排序,自然可以取出审批流程记录。

个人偏向第二种设计,工作中使用比较方便,而且不会乱,根据不同角色直接把数据返给前端,。如果其他小伙伴有更好的方案,也可以一起交流下~~~~

相关推荐
m0_706653233 分钟前
数据库与缓存操作策略:数据一致性与并发问题
java·数据库·缓存
JosieBook9 分钟前
【数据库】金仓数据库智能SQL防护机制,实现99.99%异常语句精准拦截
数据库·sql
dapeng287010 分钟前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python
Gauss松鼠会14 分钟前
【GaussDB】技术解读|GaussDB架构介绍
数据库·架构·数据库开发·gaussdb
星空露珠15 分钟前
迷你世界UGC3.0脚本Wiki世界模块管理接口 World
开发语言·数据库·算法·游戏·lua
zdl68617 分钟前
spring Profile
java·数据库·spring
Gauss松鼠会24 分钟前
【GaussDB】GaussDB 表的创建与使用之临时表
数据库·database·opengauss·gaussdb
RestCloud26 分钟前
Oracle CDC实战:如何构建企业级实时数据同步架构
数据库·oracle·etl·etlcloud·数据同步·数据集成平台
dgfhf33 分钟前
使用Python处理计算机图形学(PIL/Pillow)
jvm·数据库·python
૮・ﻌ・35 分钟前
Node.js - 04:MongoDB、会话控制
数据库·mongodb·node.js·jwt·token·cookie·session