要作一個通用的流程系統,大概應創建以下數據表:node
1. 流程表(tbl_flow)spa
字段名 | 數據類型 | 備註 |
---|---|---|
flow_id | int | 流程編號,主鍵 |
flow_no | int | 流程號,惟一列 |
flow_name | varchar2(100) | 流程名稱 |
remark | varchar2(500) | 備註 |
示例數據:ci
flow_id | flow_no | flow_name | remark |
---|---|---|---|
1 | 5 | 請假流程 | 請假流程 |
2 | 10 | 報銷流程 | 報銷流程 |
2. 流程節點表(tbl_flow_node)rem
字段名 | 數據類型 | 備註 |
---|---|---|
flow_node_id | int | 流程節點編號,主鍵 |
flow_no | int | 流程號,與流程表對應 |
flow_node_name | varchar2(100) | 流程節點名稱 |
flow_node_role | varchar2(100) | 流程角色 |
remark | varchar2(500) | 備註 |
示例數據:it
flow_node_id | flow_no | flow_node_name | flow_node_role | remark |
---|---|---|---|---|
1 | 5 | 提交請假單 | 無 | 提交請假單 |
2 | 5 | 部門經理審批 | 部門經理 | 部門經理審批 |
3 | 5 | 總經理審批 | 總經理 | 總經理審批 |
3. 流程線表(tbl_flow_line)table
字段名 | 數據類型 | 備註 |
---|---|---|
flow_line_id | int | 流程線編號,主鍵 |
flow_no | int | 流程號,與流程表對應 |
prev_node_id | int | 前一節點編號 |
next_node_id | int | 後一節點編號 |
remark | varchar2(500) | 備註 |
示例數據:date
flow_line_id | flow_no | prev_node_id | next_node_id | remark |
---|---|---|---|---|
1 | 5 | 1 | 2 | 提交部門經理審批 |
2 | 5 | 2 | 3 | 提交總經理審批 |
4. 流程角色_員工表(tbl_flow_role_user)數據類型
字段名 | 數據類型 | 備註 |
---|---|---|
flow_role_name | varchar2(100) | 流程角色名稱 |
user_id | int | 員工編號 |
dept_id | int | 部門編號 |
示例數據:next
flow_role_name | user_id | dept_id |
---|---|---|
部門經理 | 13 | 2 |
部門經理 | 26 | 4 |
總經理 | 3 | 1 |
以上就是一個通用的審批流程所須要的數據表。數據
下面,咱們來作一個簡單的示例,就是請假審批。
須要爲請假審批額外增長兩張表,其中一張表對應於請假單,但除了請假單的必需數據外,還增長了「流程號」和「當前節點編號」兩個字段;另外一張表用於記錄審批過程當中的審批意見。
5. 請假表(tbl_leave)
字段名 | 數據類型 | 備註 |
---|---|---|
leave_id | int | 請假編號,主鍵 |
user_id | int | 請假人編號 |
user_name | varchar2(100) | 請假人姓名 |
leave_type | varchar2(100) | 請假類型(病假、事假) |
leave_reason | varchar2(500) | 請假緣由 |
start_date | date | 開始日期 |
end_date | date | 終止日期 |
add_date | date | 提交日期 |
flow_no | int | 流程號 |
current_node | int | 當前節點編號 |
補充:再增長一個字段state,用於表示請假單狀態,0表示草稿,1表示已提交審批,2表示審批結束。
6. 請假審批表(tbl_leave_audit)
字段名 | 數據類型 | 備註 |
---|---|---|
audit_id | int | 審批編號,主鍵 |
leave_id | int | 請假編號,與請假表對應 |
flow_node_id | int | 節點編號 |
user_id | int | 審批人編號 |
user_name | varchar2(100) | 審批人姓名 |
audit_info | varchar2(500) | 審批意見 |
audit_date | date | 審批日期 |