建立单据的审批程序,数据库如何建表?
在现实中,有可能会碰到这样的情况,一张单据生成后,需要经过若干个人的审批,有一定的审批程序,有些程序是不可逆的,有些是可逆的,从一个程序到另一个程序,这在手工时代很好完成,也很好控制,但我们如何将这一现实模型反映到数据库中,利用数据库技术来模拟实现类似手工模式的审批过程。
要求有通用性!
欢迎大家讨论,重分奖励!
------解决方案--------------------通过事务来控制 加上判断 如果审批通过就进行下一个步骤 否则事物回滚到上一个步骤
------解决方案--------------------每一步都设置字段,第一步流程的字段更新上非空后,进行第二部审批,填写相应的审批意见,时间等,记录完毕后,到第三步流程。
------解决方案--------------------什么叫反应到数据库?没明白?
------解决方案--------------------建两表:1、单据表 2、审批流程明细表 通过关键字段将两表建关系。
其中第二个表是审批所走过的流程,包括日期,审批人,审批意见等,可以按实际要求定义。
------解决方案--------------------看看工作流相关的东西及设计再来说数据库。
------解决方案--------------------单据表
状态表
审批表
审批历史表
......
如楼上,找个workflow的流程来看一下就明白了.
PS:类似这种审批流程的,现在很多workflow的引擎都已经做到很好了.
不一定要自己开发.
------解决方案--------------------SQL code
先建立一张领导表其中包含三个字段:
领导姓名 所属级别 级别名称
徐开全 A 董事长
金有才 B 总经理
武松 C 武术顾问
...........................
总
--一级领导ID 是否签字 二级领导ID 是否签字 三级领导ID 是否签字
--这些是否签字字段,可以默认为0,表示没签字, 当为1的时候,表示已经签字
--只有第一级领导ID非空,是否签字为1的时候,第二级的字段才能允许修改
--这就可以用触发器来实现
--同理:其他级别
------解决方案--------------------
SQL code
--还有:在他的子级领导还没有签字的时候,他的父级虽然已经签字了,还是可以取消的
--否则:只有等他的子级取消了签字后,他的父级才能取消
--取消签字,只是一个单据验证的逆过程
------解决方案--------------------
单据表,流程设置表
销售单
销售单号、开单日期、单据类别、数量单价相关字段、业务经理审批、业务审批日期、业务审批意见、仓库审核、仓库审核日期、仓库审核意见
流程设置表
单据类别,审判步骤,审判人
在单据设置表里,设置第一步是谁审批,第二步是谁审判。
在审批窗口,刷新出上一步已经审批,当前没有审批的单据。
审批审批确认后,更新审批人、审批日期、审批意见等字段。
------解决方案--------------------
加字段就可以解决的吧
比如说加个标识字段,默认为0,部门经理审批后该字段更新成1,副总审批后更新成10。。。。。。。。依次类推。
------解决方案--------------------
我决得这样就可以了!
单据汇总表(单据编号,日期,操作员,审核1,审核人1,....审核2,审核N,是否执行(记账)
单据明细表(单据编号,相关的明细字段)
当前主管审核是更改审核1为是,反审核改为否,其它类似!
当单据入账时(更改是否执行为是)
------解决方案--------------------
路过
------解决方案--------------------
工作流
------解决方案--------------------
------解决方案--------------------
工作流 审批流 就是这样
------解决方案--------------------
不要在单据的表上加审核1,审核人2,...要有专门的审批流,毕竟不同单据的审批流程不一样的。
比如单据金额500一下的需要小经理审批就可以了 ,大于500的要一堆人审批才可以通过。
审批表,审批状态表,审批历史表,等等