审批流程数据库设计

最近的项目要做审批流程的模块,因为以前没有积累的经验,所以把我研究的东西分享出来供大家参考。

审批流程是一个成熟的设计模式很多大的系统中都有做好的模块,但是小型项目又不太适合采用那些方案,我们只要够用就好。

一个审批流程要支持一下这个基本的要求:

  1. 单人
  2. 单人多级审批
  3. 多人审批
  4. 多人多级审批
  5. 单人多级跳跃审批
  6. 多人多级跳跃审批
  7. 同一节点多人审批
要解决这些问题我做了如下的数据库设计:

数据提交要先在审批流程表中做匹配(匹配业务类型和流程条件),匹配成功后进入流程节点开始审核流程,每个节点更具它的跳转条件执行节点之间的跳转。

审批状态表会保存当前正在执行的审批节点状态,执行过的审批会保存到审批流程的日志表(没有画在上面)。

以前没做过不知道对不对,请大家指教。

我的博客:https://www.xiaolaiwo.com/article/database-design-for-general-approval-process.html

  • 8
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
流程审批的数据结构。 1,表结构 "1表名:流程表 " "序号 "名称 "类型 "可为空 "注释 " "1 "FLOW_ID "number(16) "no "流程ID " "2 "FLOW_NAME "VARCHAR2(64) "no "流程名称 " "3 "FLOW_DESCRIPTION"VARCHAR2(64) "yes "流程描述 " "2表名:流程下的子节点表 " "序号 "名称 "类型 "可为空 "注释 " "1 "FLOW_NODE_ID "number(16) "no "流程节点ID " "2 "FLOW_NODE_PARENT_ID"number(16) "no "流程ID(parentID) " "3 "FLOW_NODE_NAME "VARCHAR2(64) "yes "节点名称 " "4 "FLOW_NODE_PROCESSOR"VARCHAR2(64) "yes "处理人公式 " "3表名:流程线(操作) " "序号 "名称 "类型 "可为空 "注释 " "1 "FLOW_LINK_ID "number(16) "no "流程线ID " "2 "FLOW_LINK_PARENT_ID"number(16) "no "流程ID(parentID) " "3 "FLOW_LINK_NAME "VARCHAR2(64) "yes "流程线名称 " "4 "FLOW_LINK_PREVIOUS_"number(16) "yes "上一节点ID " " "NODE_ID " " " " "5 "FLOW_LINK_NEXT_NODE"number(16) "yes "下一节点ID " " "_ID " " " " 二、什么是流程。 在流程表中添加一些数据,为了更明确查看。下面的流程表中添加了两个流程,一个是 请假审批流程,另一个是ECN审批流程。(现在能明白流程的意思没?) "FLOW_ID"FLOW_NAME "FLOW_DESCRIPTION " "1 "请假审批流程 "用于请假申请审批 " "2 "ECN审批流程 "用于工程变更通知流程" 二、请假审批流程。 以请假流程为例,流程图如下,图中没有标出申请被驳回情况,默认每个节点审批不 通过,都驳回给拟稿人。(呵呵,图画的粗糙了点,纯粹是为了节约时间,现在在做EC N审批流程,这个项目还是很复杂的。) 1-1:请假审批流程图 从流程图中,可见该流程并不是固定的,流程中所走的路线是可选择的,下面在流程下 的子节点表和流程线(操作)中给出具体配置。 (作为参考吧) "FLOW_NODE_PROCESSOR "FLOW_NODE_ID "FLOW_NODE_PARENT_ID"FLOW_NODE_NAME " "SELF(自己) "1 "1 "拟稿 " "ALL_GENT(所有的科长) "2 "1 "科长审批 " "ALL_MANAGERS(所有经理 "3 "1 "经理审批 " ") " " " " "ALL_FACTORY(所有厂长)"4 "1 "厂长审批 " "ACCOUNT_ID(人事指定的一"5 "1 "人事部记录 " "个人) " " " " "SELF(自己) "6 "1 "通知拟稿人 " "FLOW_LINK"FLOW_LINK_PARE"FLOW_LINK_NAM"FLOW_LINK_PREVIOUS_"FLOW_LINK_NEXT_NOD" "_ID "NT_ID "E "NODE_ID "E_ID " "1 "1 "拟稿人送科长 "1 "2 " " " "审批 " " " "2 "1 "科长送经理审 "2 "3 " " " "批 " " " "3 "1 "经理送厂长审 "3 "4 " " " "批 " " " "4 "1 "厂长送人事部 "4 "5 " " " "记录 " " " "5 "1 "人事部通知拟 "5 "6 " " " "稿人 " " " "6 "1 "科长送人事部 "2 "5 " " " "记录 " " " "7 "1 "经理送人事部 "3 "5 " " " "记录 " " " "8 "1 "拟稿人送经理 "1 "3 " " " "审批 " " " "9 "1 "拟稿人送厂长 "1 "4 " " " "审批 " " " "10 "1 "科长驳回给拟 "2 "1 " " " "稿人 " " " "11 "1 "经理驳回给拟 "3 "1 " " " "稿人 " " " "12 "1 "厂长驳回给拟 "4 "1 " " " "稿人 " " " ----------------------- 流程审批数据库设计全文共3页,当前为第1页。 开始 科长 厂长 部门经理 拟稿人 拟稿人 结束 人事 流程审批数据库设计全文共3页,当前为第2
### 回答1: OA审批流程数据库设计主要包括以下几个方面:数据表设计、字段设计、数据关系设计、索引设计、权限设计和备份设计。 数据表设计是根据OA审批流程的业务需求进行的,需要建立相应的数据表来存储审批流程相关的数据,比如审批单表、审批流程表、审批记录表等。每个数据表需要确定相应的字段以及字段的数据类型、长度、约束等属性。 字段设计是对数据表中的字段进行详细的设计,包括字段名、数据类型、长度、约束等。例如,审批单表中可以包含字段如申请人、申请时间、审批状态等。 数据关系设计是指确定不同数据表之间的关系,如一对一、一对多、多对多等关系。例如,审批单表和审批流程表可以采用一对多的关系,一个审批单可以对应多个审批流程。 索引设计是为了提高数据库的查询性能,在关键字段上创建索引。例如,在审批单表中,可以为申请人、申请时间等字段创建索引,以提高查询效率。 权限设计是为了保护数据安全,根据用户角色和权限,对不同用户进行访问控制。例如,只有审批人员才能对审批记录表进行插入、更新或删除操作。 备份设计是为了保障数据的安全性和可恢复性,需要定期对数据库进行备份。可以选择完全备份或增量备份,保证数据的持久性和可靠性。 综上所述,OA审批流程数据库设计需要考虑数据表设计、字段设计、数据关系设计、索引设计、权限设计和备份设计等方面,以满足业务需求、提高查询性能、保障数据安全和可恢复性。 ### 回答2: OA(Office Automation)审批流程数据库设计是为了支持OA系统中各类审批流程的顺利进行而设计数据库结构。 首先,审批流程数据库设计应包括用户表、角色表、审批表和审批历史表等主要表结构。用户表记录系统中的所有用户信息,包括姓名、工号、部门等;角色表记录不同角色的权限和级别;审批表记录每个审批的基本信息,如审批标题、申请人、审批流程等;审批历史表记录每个审批的详细历史记录,包括审批意见、审批人等。 其次,在数据库设计中需要考虑到审批流程的灵活性和可扩展性。可以采用流程模板的方式,将每个审批流程抽象成一个模板,包括审批节点、审批顺序、流程分支等信息。在审批表中使用模板ID来关联具体的审批流程,实现不同审批流程的变化和扩展。 此外,为了提高数据库性能和查询效率,可以添加索引来加快审批流程的查询和检索。比如,可以在审批表中添加审批状态的索引,加快根据状态查询待办审批的速度。 最后,审批流程数据库设计应当包括数据权限管理的考虑。对于不同的审批流程,可能需要进行数据权限控制,保证不同角色只能查看、修改自己相关的审批数据。这可以通过在数据库表中添加角色字段,然后在查询时通过角色进行数据权限的控制。 综上所述,OA审批流程数据库设计需要考虑到用户、角色、审批流程审批历史等表的设计,同时要考虑流程模板、性能优化和数据权限管理等因素,以实现流程的顺畅进行。 ### 回答3: OA是办公自动化系统,审批流程是其中的一个重要模块。数据库设计是指设计和规划数据库的结构和关系,合理组织和存储数据以满足OA系统的审批流程需求。 首先,我们需要创建一个用户表,用于存储用户的基本信息,包括姓名、职位、部门等。每个用户会有一个唯一的ID用于标识。 其次,我们需要创建一个流程表,用于存储各种审批流程的信息,包括流程名称、描述、发起人、审批人等。每个流程也会有一个唯一的ID用于标识。 然后,我们需要创建一个节点表,用于存储审批流程的节点信息,包括节点名称、审批人、审批状态等。每个节点也会有一个唯一的ID用于标识,并且与流程表和用户表建立关联。 接着,我们需要创建一个日志表,用于存储审批流程的操作日志,包括操作时间、操作人、操作内容等。每个操作日志也会有一个唯一的ID用于标识,并且与节点表和用户表建立关联。 最后,我们可以根据业务需求,创建其他相关的表,用于存储附件信息、文件信息等,以满足OA系统的审批流程功能。 在数据库设计中,需要考虑数据的完整性和安全性,可以使用数据库的约束、索引、触发器等技术手段实现。同时,也需要进行性能优化,合理组织数据的存储结构和索引以提高查询效率。 总之,OA审批流程数据库设计需要考虑用户、流程、节点、日志等多个方面的数据管理,以满足OA系统的审批流程需求,并且确保数据的完整性、安全性和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值