資料庫審批流程
㈠ 關於工作流的資料庫設計
項目(Item)
項目ID(ItemId) 項目描述(ItemName) 流程ID (RoutID) 申請人ID (ApplyUserID) 狀態(State) 項目類型(ItemType)
1 鄭州出差借款 1 1 借款單
2 鄭州出差報銷 3 1 報銷單 這里的項目,是泛指,可以是公文,借款單,報銷單等等需要流轉的數據.
任務列表(TaskList)
任務ID(taskId) 項目ID (itemId) 步驟ID (actorId) 狀態(state) 版本(version) 1 1 1 檢出 100
2 2 3 檢出 1001
3 3 3 待檢出 1002項目申請後,任務列表插入一條記錄.用戶審批通過或者拒絕後,update當前步驟ID(上一步驟或者下一步驟).某個步驟可能有多個審批人,如果要審批,必須先檢出.version欄位是為了樂觀鎖控制,保證只能有一人檢出.
任務歷史記錄(TaskHistory)
ID(id) 項目ID (itemId) 步驟ID (actorId) 備注(memo) 操作人ID (operateUserId) 創建時間(createDate)1 1 1 成都出差 1
1 1 2 批准 2
1 1 3 批准 3
每個步驟的操作,都寫入任務歷史記錄
流程(Rout)
流程ID(routId) 流程描述(routName) 部門ID (deptID) 版本號(version) 狀態(State)
1 借款流程 1 1 發布
2 報銷流程 1 1 草稿
2 預算審批流程 1 1 停止 流程草稿狀態是可以修改刪除,發布狀態就不能修改和刪除,只能新增一個版本,或者新增一個流程,或者停止流程。
步驟(Actor)
步驟ID(actorID) 步驟序號(sortNo) 步驟描述(actorName) 流程ID (routId) 1 1 借款申請 1
2 2 部門經理審批 1
3 3 財務經理審批 1 步驟序號是步驟執行的順序,審批的時候,根據當前序號,查找下一步驟,然後將下一步驟update任務列表的步驟ID,審批拒絕,則查找上一步驟,然後update任務列表的步驟ID
步驟處理人(actorUser)
步驟ID(actorId) 處理人ID (operateUserId)
1 1
2 2
2 3 一個步驟,是有多個處理人。處理人先檢出任務列表,然後才能審批。
視圖:待我處理的工作
select t1.taskId,t1.itemId,t3.operateUserId from taskList t1 join actor t2 on t1.actorId=t2.actorId join actorUser t3 on t2.actorId=t3.actorId where t1.state='待檢出'
視圖:我申請的工作
select t1.itemId,t1.itemName,t1.state,t1.applyUserId,t2.actorId from item t1 join taskList t2 on t1.itemId=t2.itemId
申請時
"1--查找所選流程的第一個步驟
select actorId from actor
where routId =1
order by sortNo
limit 0,12--插入任務列表taskList
insert into tasklist(actorId,state,version,itemId)
values()3--插入任務歷史記錄
insert into taskhistory(itemId,actorid,memo,operateBy,createDate)
values()
4--修改項目Item的狀態為待審批
update item set state='wait_to_approve' where itemId=1"
審批通過
"1--update任務列表的步驟ID為下一步驟ID
update taskList set actorId=
(select actorId from actor
where routId = (select routId from actor where actorID=1)
and actorID>1
order by sortNo
limit 0,1
)
where taskId
2--插入任務歷史記錄
insert into taskhistory(itemId,actorid,memo,operateBy,createDate)
values()
3--修改項目Item的狀態為審批中
update item set state='approveing' where itemId=1"
審批拒絕
"1--update任務列表的步驟ID為第一步的ID
update taskList set actorId=
(select actorId from actor
where routId =(select routId from actor where actorID=1)
order by sortNo
limit 0,1)
where taskId=1
2--插入任務歷史記錄
insert into taskhistory(itemId,actorid,memo,operateBy,createDate)
values()
3--修改項目Item的狀態為審批拒絕
update item set state='jujue' where itemId=1"
㈡ 審批流程管理
易客CRM新版本中增加多級審批功能,每個模塊可以設置多個審批流程,每個流程可以設置多個審批步驟。通過控制面板開發的模塊也可以支持多級審批。
設置審批流程的步驟如下:
第一步:使用管理員賬號登陸易客CRM,進入控制面板->審批流程,選擇合同訂單模塊,進入合同訂單模塊的審判流程列表,如下圖所示:
審批流程列表1.jpg
第二步:點擊「新增審批流程」,進入創建審批流程界面,如下圖所示:
審批流程列表2.jpg
默認情況下,每個用戶提交訂單時都可以選擇當前審批流程,如果需要某些用戶不能選擇當前審批流程,可以點擊"高級選項",如下圖所示:
審批流程列表3.jpg
所選用戶將可以選擇當前審批流程,未選用戶將可以選擇當前審批流程,提交時也看不到當前審批流程。
確認流程信息後點擊保存按鈕,進入流程信息頁面,如下圖所示:
審批流程列表4.jpg
第三步:點擊「新增審批步驟」按鈕,進入創建審批步驟界面,如下圖所示:
審批流程列表5.jpg
審批步驟的信息分3個部分,第一個是基本信息,設置審批步驟的基本信息和審批人,每個審批可以設置多個審批人,每個審批人可以為正式審批人和候選審批人,正式審批人可以接收審批通知和審批記錄,候選審批人不接收審批通知和審批記錄。
審批步驟如果沒有指定下一步的審批步驟,將按照自然序列指定下一步的審批步驟,如果指定下一步審批步驟,將可以跳轉到指定的下一步審批步驟。審批步驟可以指定是否可以結束整個審批流程,如果沒有指定,最後一個審批步驟將可以結束整個審批流程。
審批步驟的第二個部分是欄位許可權,如下圖所示:
審批流程列表6.jpg
審批步驟的第三個部分是高級選項,審批通過時將可以自動更新訂單的某個欄位,如下圖所示:
審批流程列表7.jpg
第四步:重復第三步,依次創建3個審批步驟,分公司銷售經理審批、法務確認和總經理審批,如下圖所示:
審批流程列表8.jpg
第五步:創建合同訂單後,點擊「審批」按鈕,選擇審批流程提交,如下圖所示:
審批流程列表9.jpg
第六步:南京分公司的審批流程的負責人登陸系統後收到審批通知,或者在右上角的我的審批中心可以看到未審批和已審批的記錄,如下圖所示:
審批流程列表10.jpg
第七步:點擊未審批的記錄,進入合同訂單信息的界面,點擊審批按鈕,如下圖所示:
審批流程列表11.jpg
審批窗口中可以快速查看審批流程的詳細信息和審批歷史。
注意1:合同訂單、發貨單和進貨單審批通過時將自動修改「狀態」欄位的值為「已審批」,這個是系統默認的,和動態賦值沒有關系。
注意2:審批狀態目前有5個狀態,為待批准、已批准、已拒絕、已撤單和已駁回,資料庫中對應的值為0、1、-1、-2和-3,資料庫中的值可以作為條件賦值,例如統計報表和視圖中,如果有審批狀態的條件,對應的值要輸入資料庫中的值(0、1、-1、-2和-3)。
待批准表示還未審批的記錄或待審批的記錄;
已批准表示已經批准通過的記錄;
已拒絕表示審批被審批人拒絕的記錄;
已撤單表示被撤單的記錄;
已駁回表示審批人駁回的記錄,需要提交人重新修改和再提交審批。
㈢ 最近在做一個審批流程。請問用工作流(WWF)好還是直接資料庫加狀態標識來確定狀態好web開發.
工作流也只是復雜的變數狀態標識來確定的。
所以不要被這種概念所蒙蔽了。
簡單東西,用不著工作流。
PS:當然可以了,只不過要復雜一些。要看是需求,比如多人或簽 或者是同級流轉還有是不是會 簽等。
㈣ 關於一個資料庫的設計,公司員工請假流程(員工表,請假申請表,審批流程表,用戶角色表)
員工表:員工信息(員工ID、姓名、性別等),關聯角色(角色ID)
角色表:角色分類(角色ID、角色名)
請假申請表:請假流水號、員工ID、申請日期、假期開始日期、假期天數、當前狀態(申請-》一審-》2審-》批准/未批准)
請假流程表:請假流水號、審批人,審批日期,審批結果
如果功能在強點的話,可以加上審批限制日期,超限制沒進行審批,自動標為為批准、自己可以在進行擴展
㈤ 關於OA審批流程
這個比較簡單吧。一個表加兩個用戶欄位,分別為上一審批人,當前審批人,均可為空。
發起時指定當前審批人,第一級審批後設置上一審批人為當前審批人,設置當前審批人為一下審批人。
㈥ 管理員審批方式接入網路的配置流程
易客CRM新版本中增加多級審批功能,每個模塊可以設置多個審批流程,每個流程可以設置多個審批步驟。通過控制面板開發的模塊也可以支持多級審批。
設置審批流程的步驟如下:
第一步:使用管理員賬號登陸易客CRM,進入控制面板->審批流程,選擇合同訂單模塊,進入合同訂單模塊的審判流程列表,如下圖所示:
審批流程列表1.jpg
第二步:點擊「新增審批流程」,進入創建審批流程界面,如下圖所示:
審批流程列表2.jpg
默認情況下,每個用戶提交訂單時都可以選擇當前審批流程,如果需要某些用戶不能選擇當前審批流程,可以點擊"高級選項",如下圖所示:
審批流程列表3.jpg
所選用戶將可以選擇當前審批流程,未選用戶將可以選擇當前審批流程,提交時也看不到當前審批流程。
確認流程信息後點擊保存按鈕,進入流程信息頁面,如下圖所示:
審批流程列表4.jpg
第三步:點擊「新增審批步驟」按鈕,進入創建審批步驟界面,如下圖所示:
審批流程列表5.jpg
審批步驟的信息分3個部分,第一個是基本信息,設置審批步驟的基本信息和審批人,每個審批可以設置多個審批人,每個審批人可以為正式審批人和候選審批人,正式審批人可以接收審批通知和審批記錄,候選審批人不接收審批通知和審批記錄。
審批步驟如果沒有指定下一步的審批步驟,將按照自然序列指定下一步的審批步驟,如果指定下一步審批步驟,將可以跳轉到指定的下一步審批步驟。審批步驟可以指定是否可以結束整個審批流程,如果沒有指定,最後一個審批步驟將可以結束整個審批流程。
審批步驟的第二個部分是欄位許可權,如下圖所示:
審批流程列表6.jpg
審批步驟的第三個部分是高級選項,審批通過時將可以自動更新訂單的某個欄位,如下圖所示:
審批流程列表7.jpg
第四步:重復第三步,依次創建3個審批步驟,分公司銷售經理審批、法務確認和總經理審批,如下圖所示:
審批流程列表8.jpg
第五步:創建合同訂單後,點擊「審批」按鈕,選擇審批流程提交,如下圖所示:
審批流程列表9.jpg
第六步:南京分公司的審批流程的負責人登陸系統後收到審批通知,或者在右上角的我的審批中心可以看到未審批和已審批的記錄,如下圖所示:
審批流程列表10.jpg
第七步:點擊未審批的記錄,進入合同訂單信息的界面,點擊審批按鈕,如下圖所示:
審批流程列表11.jpg
審批窗口中可以快速查看審批流程的詳細信息和審批歷史。
注意1:合同訂單、發貨單和進貨單審批通過時將自動修改「狀態」欄位的值為「已審批」,這個是系統默認的,和動態賦值沒有關系。
注意2:審批狀態目前有5個狀態,為待批准、已批准、已拒絕、已撤單和已駁回,資料庫中對應的值為0、1、-1、-2和-3,資料庫中的值可以作為條件賦值,例如統計報表和視圖中,如果有審批狀態的條件,對應的值要輸入資料庫中的值(0、1、-1、-2和-3)。
待批准表示還未審批的記錄或待審批的記錄;
已批准表示已經批准通過的記錄;
已拒絕表示審批被審批人拒絕的記錄;
已撤單表示被撤單的記錄;
已駁回表示審批人駁回的記錄,需要提交人重新修改和再提交審批。
㈦ 如何實現資料庫存儲過程操作審計
--禁用C2 審核跟蹤和只限成功的登錄
EXEC sys.sp_configure N'c2 audit mode', N'0'
GO
RECONFIGURE WITH OVERRIDE
GO
USE [master]
GO
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'AuditLevel', REG_DWORD, 1
GO
SQLSERVER2008新增的審核功能
在sqlserver2008新增了審核功能,可以對服務器級別和資料庫級別的操作進行審核/審計,事實上,事件通知、更改跟蹤、變更數據捕獲(CDC)
都不是用來做審計的,只是某些人亂用這些功能,也正因為亂用這些功能導致踩坑
事件通知:性能跟蹤
更改跟蹤:用Sync Services來構建偶爾連接的系統
變更數據捕獲(CDC):數據倉庫的ETL 中的數據抽取(背後使用logreader)
而審核是SQLSERVER專門針對資料庫安全的進行的審核,記住,他是專門的!
㈧ 如何實現OA系統的自定議審批流程的資料庫設計
我舉一個例子:有的OA系統是要公司客戶自己有伺服器,然後裝到客戶的伺服器上。可是客戶嫌麻煩,所以我想將OA系統(PHP+Mysql)放在自己的伺服器上,讓公司客戶及其員工來注冊使用。那麼問題來了,原來在客戶自己的伺服器上資料庫也就十幾張表,但都放到我的伺服器上,每注冊一個公司就得增加十幾張表,那如果有一萬家公司注冊資料庫不得有幾十萬張表?跟樓主一樣的問題,有一些老牌廠商早就給出來完美答案了,比如華為、天翎都有過類似的問題,這些企業提出的解決方案就很不錯,就針對上面的問題,最簡單的辦法是給每張表加個實例ID,一個公司對應一個實例ID,然後在你的MVC架構中跟DB最近的這一層加個攔截器,每個SQL查詢都自動帶上實例ID,這樣不用對代碼做很大改動。後期再根據需要優化,哪些公司合用一張表,哪些單獨佔用一張表甚至一個資料庫,總之具體問題具體對待,需要在運營的過程中根據用戶量和業務情況來分析採取對策。
㈨ ACCESS資料庫如何添加「審核」按鈕
緊緊只是一個審核按鈕,沒有審核流程的話簡單
資料庫加一個審核狀態的欄位。。。審核更新這個欄位,列表的編輯按鈕,根據這個欄位控制可用不可用就好了。添加按鈕不做控制,所以不影響。
㈩ 審核流程的資料庫一般怎麼設計
1、用戶表
用戶ID
用戶角色(1:業務員,2:經理,3:總經理,4:總裁。。。)
用戶姓名
2、客戶表
客戶ID
客戶名稱
3、業務員客戶表
用戶ID(其實就是用戶表裡的用戶角色為業務員的用戶)
客戶ID
4、業務員移交客戶申請表
申請人用戶ID
申請移交的客戶ID
審批狀態(0:審批中,1:已審批。。。。)
移交後用戶ID
5、請假表
用戶ID
請假開始時間
請假結束時間
請假類別(1:事假、2:病假、3:婚假。。。。。)
審批狀態(0:審批中,1:已審批。。。。)