工作流数据库表设计-ASP.NET
公司准备开发一套工作流引擎,以前没有什么OA开发经验,也是第一次设计工作流引擎,我把我的一些思路分享一下,希望得到些帮助或者能帮助到一些人。
产品的定位:
1、能够做到前后端分离
2、可以做到项目的分离使用,通过接口来实现
3、支持复杂流程逻辑 例如: 填写加班表单-》多人审核=》退回=》填写证明人=》指定人审核=》通过
或者
等等。
设计思想
一、通过对审批流程的分解可以得到三个动作 ,然后对这三个动作进行更细的分析得出结果如下:
1、提写表单
表单表:例如加班单
表单元素表:加班单里面需要填写的输入框和下拉框等
表单存储表:加班单点击提交存储的值
表单事件表:如验证件,提交事件等
2、选择审核人
审核表:存储上一次动作的审核信息
审核用户表:所需要的审核人
审核组织架构表:查询所需要用的组织架构
3、条件判定
判定表:复杂的工作流中会对流程的结果进行判定,例如请假天数超过N天进行XXX动作
从填写【表单】开始,后面可以是 【判定】 也以是【审核】也可以是继续填写表单,这样就型成了一个工作流
二、动作通用表,考虑到良好的用户体验添加了附件、回复和@功能
主贴表:可以进行回复
从贴表:可以对回复进行跟贴
附件表:可以对动作添加多个附件
三、动作历史表
动作记录:在一种特殊情况下会用的到,就是你的操作被撤回到上一个动作, 这个时候就需要一个历史记录进行查看。