圖系列:流程圖的資料模型
流程圖的一種理解
以特定的圖形符號加上說明,表達演算法的圖,被稱為流程圖或框圖。
例如,一張流程圖能夠成為解釋某個零件的製造工序,甚至組織決策制定程式的方式之一。這些過程的各個階段均用圖形塊表示,不同圖形塊之間以箭頭相連,代表它們在系統內的流動方向。下一步何去何從,要取決於上一步的結果,典型做法是用“是”或“否”的邏輯分支加以判斷。
可以這樣理解, 流程圖是由一些圖框和流程線組成的,其中圖框表示各種操作的型別(事件),圖框中的文字與符號表示操作的內容(發起者的屬性及事件引數),流程線表示事件的先後次序(流轉的條件).
綜上所述我們可以用資料結構中的帶權有向圖來描述流程圖的資料模型
流程圖的一種資料庫設計
有上面的結論可以知道 流程圖就是帶權有向圖,這樣就給了我們一條思路,可以用圖的儲存結構(可以參考我的上一篇博文)去表示流程圖,我採用的是鄰接矩陣表示法。
可以這麼理解流程圖由節點(Activity)、事件(Event)、線(Line)組成,還有流程(Process)
流程(Process)表:
序號 |
列名 |
資料型別 |
長度 |
小數位 |
標識 |
主鍵 |
允許空 |
預設值 |
說明 |
1 |
ID |
int |
4 |
0 |
否 |
||||
2 |
Code |
nvarchar |
50 |
0 |
否 |
||||
3 |
CNName |
nvarchar |
50 |
0 |
否 |
||||
4 |
ENName |
nvarchar |
50 |
0 |
否 |
||||
5 |
Description |
nvarchar |
0 |
0 |
否 |
節點(Activity)表:
序號 |
列名 |
資料型別 |
長度 |
小數位 |
標識 |
主鍵 |
允許空 |
預設值 |
說明 |
1 |
ID |
int |
4 |
0 |
否 |
||||
2 |
ProcID |
int |
4 |
0 |
否 |
||||
3 |
Name |
nvarchar |
200 |
0 |
否 |
||||
4 |
Descr |
nvarchar |
0 |
0 |
否 |
事件(Event)表
序號
列名
資料型別
長度
小數位
標識
主鍵
允許空
預設值
說明
1
ID
int
4
0
否
2
ProcID
int
4
0
否
3
ActID
int
4
0
否
4
Name
nvarchar
50
0
否
線(Line)表:
序號 |
列名 |
資料型別 |
長度 |
小數位 |
標識 |
主鍵 |
允許空 |
預設值 |
說明 |
1 |
ID |
int |
4 |
0 |
否 |
||||
2 |
ProcID |
int |
4 |
0 |
否 |
||||
3 |
Name |
nvarchar |
200 |
0 |
否 |
||||
4 |
Descr |
nvarchar |
0 |
0 |
否 |
||||
5 |
StartID |
int |
4 |
0 |
否 |
||||
6 |
FinishID |
int |
4 |
0 |
否 |
||||
7 |
StartRlue |
nvarchar |
200 |
0 |
否 |
流程圖的一種架構設計
由上的流程圖資料庫設計,可以有一種思路進行流程管理系統的架構設計,結合有向圖進行演算法設計(廣度優先搜尋),進行基於WF(jbpm)流程系統設計。
流程管理系統涉及到其他許多方面,各節點操作人、各節點的執行規則、每個流程例項的資料。。。。
這裡僅提供一種思路、一種見解,也是對個人思維 的梳理,以達拋磚引玉之效。