程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 使用silverlight構建一個工作流設計器(十六)-持久化數據到數據庫—數據庫結構

使用silverlight構建一個工作流設計器(十六)-持久化數據到數據庫—數據庫結構

編輯:關於ASP.NET

16.1 數據結構

目前的流程信息沒有保存到任何一個可持久化的環境中,根據網友建議,增加存儲工作流xml文件的功能。這個功能使用數據庫來實現,您也可以有更多的持久化方式。

根據工作流引擎的實現不同,有些引擎只需要xml文件配置就可以了,有些引擎需要建立數據庫的模型。在本文中,假設工作流引擎是跟數據庫相關的。

整個持久化流程是這樣的:

從使用webservices從服務器下載相應的流程xml描述(或者新建一個流程)

在客戶端使用流程設計器進行流程設計或者修改,此時任何修改都在本地完成

在用戶點擊保存按鈕以後,根據當前流程生成對應的xml字符串,通過webservices上傳到服務器。

在服務器分析xml文件,並將相應的數據更新到數據庫

首先需要定義一些工作流的數據表,這些表包括流程表、活動表、規則表。因為還沒有涉及到流程監控,所以暫不考慮工作流實例表。另外為了簡化程序,也沒有配置活動類型、規則類型等輔助表,而直接在相關的活動和規則表裡面設置了相關字段。

流程表(WorkFlow_Process)

字段名稱 類型 意義 WorkFlowID PK,Varchar(50),not nul 主鍵 WorkFlowName Nvarchar(50),not nul 流程名稱 WorkFlowXM Ntext,not nul 流程xml描述文件

活動表(WorkFlow_Activity) 

字段名稱 類型 意義 ActivityID PK,Varchar(50),not nul 主鍵 ActivityName Nvarchar(50),not nul 活動名稱 ActivityType Varchar(50),not nul 活動類型 ProcessID FK,varchar(50),not nul 關聯流程ID

規則表(WorkFlow_Rule) 

字段名稱 類型 意義 RuleID PK,Varchar(50),not nul 主鍵 RuleName Nvarchar(50),not nul 規則名稱 BeginActivityID FK,Varchar(50), nul 關聯的啟示活動 EndActivityID FK,varchar(50), nul 關聯的結束活動 Condition Nvarchar(1000),nul 流轉條件 RuleType Varchar(50),not nul 規則類型

下面的圖片顯示了這幾個表的關系。

您可以在codeplex下載本程序源代碼以及數據庫備份文件(sq2005數據備份文件)

(最近更新沒有那麼頻繁了,見諒。)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved