现在公司要做一个生产流程控制系统,现阶段还算是简单的流程,特请教大家
设计工作流程控制时,数据库方面是如何设计的?生产单元如下:
订单:一个订单里面包含多个产品
产品:最小单元,属于订单。
举例:一个订单A里面包含产品1,产品2...
流程:
1.订单单位有两个流程,流程1,流程2,流程3
2.产品单位有三个流程:流程1-1,流程1-2,流程2 。其中流程1-1和流程1-2是并发流程,并且
 流程1-1、1-2只有都完成后才可以进入流程2.
3.所有产品在流程2结束时,订单才可以进入流程3(结束流程)流程大概如下:
订单A到来,订单A进行流程处理1,订单A流程处理2(此刻订单单位分散为产品单位),订单A下面的产品进行流程处理1-1、1-2(所有产品并发),产品流程处理2(必须单个产品流程1-1、1-2都完成后才可以进行流程2),订单A等待所有产品到流程处理2完了后,订单进行流程处理3(最后交货流程)。试问各位:大家是如何设计此种工作流的模型的?
我公司现在要求灵活性只需有一定即可(可以后期动态增加流程),但要求流程解析速度一定要快。
我是这么做数据库设计的,大家有更好主意请指教:
首先把订单单位和产品单位分开:比如订单表和产品单位表
‘流程’用一个固定位数的字符串来表示,
比如5位字符串:32100
第一位表示流程1,第二位表示流程2,以此类推
状态上: 3表示完成,2表示进行中,1表示未开始,0表示保留无需处理有一个流程分析器程序,定期分析这5位字符串,然后计算出下一步需要处理什么。更新这个流程字符串。
现在的问题是:
1.大家遇到这种情况时,都怎么设计?上述设计效率如何(那5位字符串的按位计算速度)?
2.上述流程字符串只能在后面动态增加流程(0位),不可在前面任意插入流程,灵活性差了点。
3.并发性质的流程,用这个1维5位字符串很难表示,比如上面的产品流程1-1、1-2。