我们都知道工作流引擎在系统开发上起到了举足轻重的地位,那么如何很好的设计一个自己的工作流引擎,我们今天就简单从数据库设计方面,谈谈流引擎设计。
下面我们就以Tpflow工作流引擎的数据库设计来跟大家聊聊。
工作流引擎数据表一般有‘flow’'flow_process' 'run' 'run_process' 'log' 至少应该拥有这五张基础数据表;当然在tpflow中,还设计了'run_sing' 'run_cache' 两张附表。 用以上7张数据表,构成了Tpflow的工作流。
‘flow’表一般用于存储主要工作流的关键信息,比如工作流类别、工作流关联信息、工作流状态等等;
‘flow_process’表一般直接存储步骤信息,其中关联'flow'主表,共同构成 流程信息表;步骤的所有属性,比如下级步骤,步骤状态,转出条件等等。
‘run’ 表,可以理解为 flow表的运行分身
'run_process' 表 可以理解为 flow_process 表的运行分身
'run_sing' 表则是会签时候的信息存储表;
'run_cache' 'run_log' 则体现了工作流的消息日志及缓存;
以上我们大致了解了工作流五张主表的设计及作用。
在整个php工作流引擎的设计难点中,不光光是数据表的设计难度,更难的是在于前端及后端的各种驱动。想要更好的设计好一款工作流引擎,数据表的设计基础,及思路不可或缺。
如您有更好的思路,不妨点击下方留言,我们共同探讨。