系统设计--审核状态
常见的审核状态待审核 已通过已拒绝。要有一个不可变的最终状态要有一个不可变的最终状态比如“已拒绝”或已通过。如果最终状态可变那状态有可能一直在变来变去。可以设计成支持重新发起重新生成一条新的审核单而不是去修改历史“已拒绝”的单子。历史单子的终态保持不变。状态变化最好有状态记录表这样才知道状态是什么时候变化旧状态是什么新状态是什么是谁审核的。数据表设计审核表CREATE TABLE t_audit ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT 主键ID, user_id BIGINT NOT NULL COMMENT 申请人ID, title VARCHAR(128) NOT NULL COMMENT 标题, content MEDIUMTEXT DEFAULT NULL COMMENT 详细申请数据, status TINYINT NOT NULL DEFAULT 0 COMMENT 审核状态: 0-草稿, 1-待审核, 2-已通过, 3-已拒绝, audit_remark VARCHAR(255) DEFAULT NULL COMMENT 审核意见/拒绝原因, auditor_id BIGINT DEFAULT NULL COMMENT 最后审核人ID, audit_time DATETIME DEFAULT NULL COMMENT 最后审核时间, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, PRIMARY KEY (id), KEY idx_user_status (user_id, status), KEY idx_status_created (status, created_at) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT审核表;状态记录表CREATE TABLE t_audit_log ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT 主键ID, audit_id BIGINT NOT NULL COMMENT 申请单ID, old_status TINYINT NOT NULL COMMENT 变更前状态 (1-待审核...), new_status TINYINT NOT NULL COMMENT 变更后状态 (2-已通过3已拒绝), operator_id BIGINT NOT NULL COMMENT 操作人ID (用户或管理员), operator_type TINYINT NOT NULL DEFAULT 1 COMMENT 操作人类型: 1-用户自操作, 2-后台管理员, audit_remark VARCHAR(255) DEFAULT NULL COMMENT 备注, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, PRIMARY KEY (id), KEY idx_audit_id (audit_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT审核状态变更记录表;

相关新闻

手术室医用保温柜150L

手术室医用保温柜150L

结构为立式箱体。主体分为四部分:电气控制系统,制冷系统、制热系统、显示系统;箱体外部材料:采用优质钢板,经先进防腐化喷涂工艺,表面色泽柔和。内部材料:ABS工程塑料(另有不锈钢系列…

2026/8/2 10:49:59阅读更多 →
深入解析NUMA架构:C++高性能编程中的内存访问优化策略

深入解析NUMA架构:C++高性能编程中的内存访问优化策略

在多核服务器上开发高性能C程序时,你是否遇到过这样的困惑:明明CPU核心数很多,程序也做了多线程优化,但性能提升却远未达到预期?线程数增加后,程序运行速度不升反降,甚至出现卡顿?这…

2026/8/2 10:49:59阅读更多 →
盲注防守思路解析:基于EV计算与范围图的进阶策略

盲注防守思路解析:基于EV计算与范围图的进阶策略

先懂GTO 是面向进阶玩家的德州扑克分析工具。在构建盲注防守思路时,核心在于利用胜率/EV计算与范围图查询工具精确量化底池赔率与手牌权益。通过模拟不同对手范围的加注频率,玩家可识别出哪些边缘牌型具备正期望值,从而优化大盲位与小盲位的防…

2026/8/2 10:49:59阅读更多 →
如何快速安装Wayback Machine扩展:终极互联网时光机使用指南

如何快速安装Wayback Machine扩展:终极互联网时光机使用指南

如何快速安装Wayback Machine扩展:终极互联网时光机使用指南 【免费下载链接】wayback-machine-webextension A web browser extension for Chrome, Firefox, Edge, and Safari 14. 项目地址: https://gitcode.com/gh_mirrors/wa/wayback-machine-webextension …

2026/8/2 15:07:07阅读更多 →
3个理由告诉你,为什么你需要MarkDownload来管理网页内容

3个理由告诉你,为什么你需要MarkDownload来管理网页内容

3个理由告诉你,为什么你需要MarkDownload来管理网页内容 【免费下载链接】markdownload A Firefox and Google Chrome extension to clip websites and download them into a readable markdown file. 项目地址: https://gitcode.com/gh_mirrors/ma/markdownload …

2026/8/2 15:07:07阅读更多 →
这3款免费AI助手正在悄悄升级核心模型——不注册、不限速、无水印,手慢无!

这3款免费AI助手正在悄悄升级核心模型——不注册、不限速、无水印,手慢无!

更多请点击: https://codechina.net 第一章:免费AI助手推荐 在开源与云服务生态日益成熟的今天,一批功能强大、无需付费的AI助手正成为开发者和普通用户提升效率的首选工具。这些工具覆盖文本生成、代码补全、多语言翻译、知识问答等核心场…

2026/8/2 15:07:07阅读更多 →
双通道CAN MiniPCIe卡:嵌入式系统多网络接入与网关应用实战

双通道CAN MiniPCIe卡:嵌入式系统多网络接入与网关应用实战

1. 项目概述:为什么需要一张2-CH CAN MiniPCIe卡?在工业自动化、汽车电子、机器人控制这些领域,CAN总线就像设备之间的“神经系统”,负责传递各种控制指令和状态信息。无论是调试一辆新能源汽车的ECU,还是监控一条产线…

2026/8/2 15:07:07阅读更多 →
R1225微控制器实现BACnet MS/TP从站:硬件设计、协议栈移植与调试全解析

R1225微控制器实现BACnet MS/TP从站:硬件设计、协议栈移植与调试全解析

1. 项目背景与核心挑战:为什么是R1225与BACnet MS/TP?如果你正在为一个楼宇自动化项目寻找一个稳定、低成本的现场控制器,或者你手头恰好有一块R1225开发板,想要把它变成一个BACnet设备,那么你找对地方了。R1225&#…

2026/8/2 15:07:07阅读更多 →
AI决策盲区全图谱,从数学不可判定性到认知语义断层——2024权威测试基准下的7类硬性失效清单

AI决策盲区全图谱,从数学不可判定性到认知语义断层——2024权威测试基准下的7类硬性失效清单

更多请点击: https://intelliparadigm.com 第一章:AI决策盲区的本质溯源与认知范式重构 AI系统在图像识别、自然语言理解等任务中展现出惊人能力,但其“高准确率”常掩盖深层的认知断裂——模型并不理解语义,仅拟合统计相关性。这…

2026/8/2 15:05:06阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:10阅读更多 →
限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

更多请点击: https://intelliparadigm.com 第一章:AI模板批量生成的核心价值与落地全景 AI模板批量生成正从实验性工具演进为现代软件工程的关键基础设施。它通过语义理解、上下文感知与结构化约束,将重复性高、模式明确的代码/文档/配置生成…

2026/8/2 0:00:12阅读更多 →
如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南 【免费下载链接】web-archives Browser extension for viewing archived and cached versions of web pages, available for Chrome, Edge and Safari 项目地址: https://gitcode.com/gh_mirrors/we/web-a…

2026/8/2 0:00:13阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:10阅读更多 →
限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

更多请点击: https://intelliparadigm.com 第一章:AI模板批量生成的核心价值与落地全景 AI模板批量生成正从实验性工具演进为现代软件工程的关键基础设施。它通过语义理解、上下文感知与结构化约束,将重复性高、模式明确的代码/文档/配置生成…

2026/8/2 0:00:12阅读更多 →
如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南 【免费下载链接】web-archives Browser extension for viewing archived and cached versions of web pages, available for Chrome, Edge and Safari 项目地址: https://gitcode.com/gh_mirrors/we/web-a…

2026/8/2 0:00:13阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/2 1:29:34阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/2 2:32:55阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/2 2:09:20阅读更多 →