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