工作流设计
?
?
1、首先,獲得當(dāng)前用戶的id
2、有一個(gè)流程表,這個(gè)流程表里就兩個(gè)字段,一個(gè)是父id,一個(gè)是子id,多對(duì)多的關(guān)系
3、信息表擴(kuò)展了兩個(gè)字段,一個(gè)是關(guān)于哪個(gè)用戶審核的,一個(gè)是審核狀態(tài)
4、根據(jù)當(dāng)前用戶的id(也是流程表里的子id)查詢父id
5、父id與信息表里的id(審核人id)比較,如果id是一致的且審核狀態(tài)是審核通過,說明流程輪到我來審核了,否則信息不顯示
?
?
--------------------------------------------------------------------------------------------------------------------------------------------------------
流程表--由3并行,由5、7結(jié)束
?
父id  子id
?
1    2
2    3
3    4
4    5
?
?
從3并行
?
?
3    6
6    7
?
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
?
6、如果是并行流程的話,信息表需要擴(kuò)展四個(gè)字段,一個(gè)是關(guān)于哪兩個(gè)用戶審核的,一個(gè)是審核狀態(tài)
哪如果是同時(shí)并行了多個(gè)流程呢?所以動(dòng)態(tài)添加信息表的字段并不科學(xué)。
--------------------------------------------------------------------------------------------------------------------------------------------------------------
中間表
?
內(nèi)容id 當(dāng)前審核者 ?審核結(jié)果
1 ? 5 通過
1 ? 7 不通過
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
?
內(nèi)容 內(nèi)容id
sdfsdfsdf 1
-------------------------------------------------------------------------------------------------------------------------------------------------------
?
?
1、獲取當(dāng)前用戶id
2、根據(jù)用戶id獲取父id
3、獲取信息id
4、根據(jù)信息id獲取中間表,判斷流程是否終結(jié)
5、如果流程沒有終結(jié),根據(jù)父id獲取中間表id,判斷其父級(jí)是否通過審核,如果通過,則顯示信息
?
?
當(dāng)然,直接獲取信息id是不友好的
$list ?= ?select * from 中間表 where 父id = 當(dāng)前用戶的父id and 狀態(tài) = '審核通過'
foreach ($list as $key=>$value){
echo "我的代辦事項(xiàng)".$value;
}
取到所有(代辦事項(xiàng))信息id
?
?
?
二次開發(fā)必須滿足的條件
1、信息表
2、流程表
3、中間表(多個(gè)用戶對(duì)與信息的審核反映)
?
?
?
總結(jié)
 
                            
                        - 上一篇: valgrind-3.11.0 交叉编译
- 下一篇: 《LINUX3.0内核源代码分析》第二章
