OA之审批流程设计

目录

定义

背景

审核的流程

审批主表(sys_approval_flow)

审批明细表(sys_approval_flow_mx)

请假表(sys_vacation)


定义

O A(Office Automation)——办 公 自 动 化,将现代计算机、通信等技术运用到传统办公方式,进而形成一种新型办公方式。利用西安大话技术,代替办公人员传统的部分手动重复性的业务活动,优质高效的处理办公事务和业务信息,提高工作效率和质量,改善工作环境。

背景

封城休假期间朋友需要搞一个O A的审核流程,出于朋友友情,替朋友设计一个O A审批流程业务表。

审核的流程

他们的业务是按照流程,完成相应的审批人员逐层的进行审批,只有当所有的审核人员全部都通过了,则可以认为这条审批记录是通过的状态。

依据这个流程,进行了表结构的设计,首先分为审批流程主表

审批主表(sys_approval_flow)

列名称类型含义
idvarchar(32)主键,可作为审批编号
titlevarchar(50)标题(王五的请假申请)
typevarchar(20)审批类型(字典表设置code用作区分类型)
user_idvarchar(32)申请人主键
create_timedatetime创建时间
statuschar(1)审核状态(1:待审核;2:通过;3:驳回;4:撤销)

审批明细表(sys_approval_flow_mx)

列名称类型含义
idvarchar(32)明细表主键
approval_flow_idvarchar(32)审批表主键
user_idvarchar(32)审批人主键
create_timedatetime创建时间
approval_timedatetime审批时间
opinionvarchar(20)审核意见
statuschar(1)审核状态(1:审核中;2:等待我审核;3:通过;4:驳回)
opinionvarchar(100)审核意见

这里的明细表的数据,取决于我们申请时所需选填的审批人的数量

这样我们的审批流程的两张主要表就设计好了,接下来我们以请假流程来说明一下,

首先,看一下请假表的设计

请假表(sys_vacation)

列名称类型含义
approval_flow_idvarchar(32)审批表主键(关联审批流程主表)
user_idvarchar(32)申请用户主键
create_timedatetime创建时间
reasonvarchar(50)请假事由
remarkvarchar(100)备注
start_timedatetime请假开始时间
end_timedatetime请假结束时间
time_hoursint请假总时长(小时)

到这里,我们整个O A审批流程的表结构设计完成了,是不是在我们的脑子中有了一个清晰的流程了呢?

我们看一下大概的流程:

  1. 录入当前审批业务数据(请假申请单据的表单),选择好三个审批人(部门主管、经理、人事)
  2. 审批流程主表中插入了1条数据
  3. 审批流程明细表中插入了3条数据
  4. 请假表中插入1条数据
  5. 向第一个审核人发送相关的审批通知信息

上面我们看到了申请的流程,那么接下来我们看一下审核的基本流程和逻辑:

  1. 根据表单数据来判断审核是否同意
  2. 根据approval_flow_id(审批流程主键)、user_id(审批人主键)和status(审批状态:2:等待我审核)的组合条件去sys_approval_flow_mx(审批流程明细表)中查询,当结果为空,则这条单据没有我要审核的或者已经审核通过了,则直接返回。
  3. 如果2中的结果不为空,则说明将当前审核明细中的1条数据的审核状态根据我们的情况配置为通过或者驳回
  4. 当审核明细数据全部为审核通过的时候,则需要将主表状态设置为审核通过
  5. 当审核明细数据中有一条审核不通过,则将审核流程主表中的审核状态设置为不通过

好了,今天的O A审核就先讲解到这,欢迎大家留言多交流!

也欢迎大家关点击下方卡片,关注《coder练习生》

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答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
发出的红包

打赏作者

ybb_ymm

你的鼓励会是对我最大的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值