工單模組資料庫設計__資料庫

來源:互聯網
上載者:User

        工作流程,就是商務資訊資料在多個環節模組之間的流轉。按照工作流程管理同盟定義,工作流程指的是“業務過程的部分或全部在電腦應用環境下的 自動化”。在實際應用過程中,為了實現對業務過程的工作流程管理,需要對商務程序及其各個步驟之間商務規則的抽象,概括,做成一個統一通用的流程管理軟體系統,這種軟體系統就是工作流程管理系統。     

        公司要求做工單系統,以工作流程的方式來做。一開始時因為沒接觸過工作流程機制,完全的理解錯誤了,第一版設計出來的完全不是工作流程的方式。後來上網查詢學習,看工作流程開源引擎說明文檔,才慢慢地有了個瞭解。後來又花了一段時間做了一個原型圖設計文檔出來,發給主管看了。他們也不知道什麼時候做了討論,只給我說太複雜,給“哢嚓”掉了。聽到這個回複,我也沒驚訝,心裡只是有點小失望。從開始說要做個,到過程中的學習設計,到最後的原型圖出來了,也是花了不少時間。沒驚訝,是因為,瞭解工作流程的機制後,發現要做一個完善點的好點的工作流程的機制挺複雜,特別是要用到工單模組裡。這個複雜度,可能在後期維護起來會得不償失。沒瞭解過工作流程的人,維護起來也會一頭霧水。上網查詢工單工作流程,發現原來碩士研究生畢業論文也在搞個東西,於是我就想,要是我把這個做出來了,自己最少也是研究生畢業了。而且自己總是想嘗試做一些新的東西難一點的東西,總是重複做那些列表添加修改查詢,無聊透頂了,完全沒有意思。在評估這個工單工作流程的可行性的時候,就有了點私心,不想去管後期維護的事,做出來再說。做出來了,也就獲得了一些很難得的經驗。其他公司web開發中不知用工作流程這種方式做工單模組的多不多,感覺應該不多吧。


     下面是當時設計的資料庫,沒實際做開發。但應該可以滿足工作流程了。索引還沒做。


CREATE TABLE `workflow_baseinfo` (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '流水號',  `wb_name` varchar(50) NOT NULL COMMENT '流程名稱',  `wb_desc` varchar(2000) DEFAULT NULL COMMENT '流程描述',  `wb_type` tinyint(1) NOT NULL DEFAULT '-1' COMMENT '是否是子流程(1是-1否)',  `wb_searcher` varchar(1000) DEFAULT NULL COMMENT '流程管理監控人員id(多人以逗號分隔)',  `wb_queryer` varchar(1000) DEFAULT NULL COMMENT '流程查詢人員id(多人以逗號分隔)',  `wb_status` int(2) NOT NULL DEFAULT '1' COMMENT '流程運行狀態(-1停用1啟用)',  `wb_limit_minute` int(11) DEFAULT NULL COMMENT '流程限時(分鐘)',  `wb_add_user_id` int(11) NOT NULL COMMENT '此記錄添加人',  `wb_add_time` int(11) NOT NULL COMMENT '此記錄添加時間',  PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='工作流程屬性工作表'

CREATE TABLE `workflow_step` (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '流水號',  `ws_baseinfo_id` int(11) NOT NULL COMMENT '工作流程屬性工作表id',  `ws_name` varchar(50) NOT NULL COMMENT '名稱',  `ws_desc` varchar(2000) DEFAULT NULL COMMENT '描述',  `ws_order` int(3) DEFAULT NULL COMMENT '序號',  `ws_is_runer` tinyint(1) NOT NULL DEFAULT '-1' COMMENT '是否需要指定經辦人(1是-1否)',  `ws_run_user_id` varchar(200) DEFAULT NULL COMMENT '經辦所有者(使用者id)',  `ws_run_role_id` varchar(100) DEFAULT NULL COMMENT '經辦所有者(角色id)',  `ws_run_department_id` varchar(100) DEFAULT NULL COMMENT '經辦所有者(部門id)',  `ws_run_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '執行類型(1人工節點2自動節點)',  `ws_notice_sms` tinyint(1) NOT NULL DEFAULT '-1' COMMENT '是否簡訊通知(-1否1是)',  `ws_notice_email` tinyint(1) NOT NULL DEFAULT '-1' COMMENT '是否郵件通知(-1否1是)',  `ws_type` tinyint(1) NOT NULL COMMENT '節點類型(1開始結點2結束結點3過程節點)',  `ws_limit_time` int(11) DEFAULT NULL COMMENT '時限(秒)',  `ws_int_api_id` varchar(20) DEFAULT NULL COMMENT '節點初始事件id(多個以逗號分隔)',  `ws_run_api_id` varchar(20) DEFAULT NULL COMMENT '節點運行事件id(多個以逗號分隔)',  `ws_save_api_id` varchar(20) NOT NULL COMMENT '節點儲存事件id(多個以逗號分隔)',  `ws_turn_api_id` varchar(20) DEFAULT NULL COMMENT '節點流轉事件id(多個以逗號分隔)',  `ws_is_sync` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否同步(1是-1否)',  `ws_add_user_id` int(11) DEFAULT NULL COMMENT '此記錄添加人id',  `ws_add_time` int(11) DEFAULT NULL COMMENT '此記錄添加時間',  `ws_son_baseinfo_id` int(11) DEFAULT NULL COMMENT '子工作流程id',  `ws_listpage_show` tinyint(1) NOT NULL DEFAULT '-1' COMMENT '列表是顯示該操作(1是-1否)',  `ws_show_fields` varchar(200) DEFAULT NULL COMMENT '當前節點中可視的欄位id(多個以逗號分隔)',  `ws_edit_fields` varchar(200) DEFAULT NULL COMMENT '當前節點中編輯的欄位id(多個以逗號分隔)',  PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='工作流程節點步驟表'

CREATE TABLE `workflow_line` (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '流水號',  `wl_start_step_id` int(11) NOT NULL COMMENT '線路開始節點id',  `wl_end_step_id` int(11) NOT NULL COMMENT '線路結束節點id',  PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='工作流程線路表'

CREATE TABLE `workflow_fields` (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '流水號',  `wf_baseinfo_id` int(11) NOT NULL COMMENT '工作流程屬性工作表id',  `wf_step_id` int(11) DEFAULT NULL COMMENT '工作流程節點表id',  `wf_cnname` varchar(20) NOT NULL COMMENT '表單欄位中文名稱',  `wf_enname` varchar(20) DEFAULT NULL COMMENT '表單欄位英文名稱',  `wf_desc` varchar(100) DEFAULT NULL COMMENT '欄位備忘',  `wf_default_value` varchar(1000) DEFAULT NULL COMMENT '欄位預設值',  `wf_searchpage_show` tinyint(1) NOT NULL DEFAULT '1' COMMENT '查詢頁面是否可視(1是-1否)',  `wf_addpage_show` tinyint(1) NOT NULL DEFAULT '1' COMMENT '添加頁面是否可視(1是-1否)',  `wf_editpage_show` tinyint(1) NOT NULL DEFAULT '1' COMMENT '編輯頁面是否可視(1是-1否)',  `wf_listpage_show` tinyint(1) NOT NULL DEFAULT '1' COMMENT '列表頁面是否可視(1是-1否)',  `wf_is_empty` tinyint(1) NOT NULL DEFAULT '-1' COMMENT '是否可以為空白(1是-1否)',  `wf_is_edit` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否可編輯(1是-1否)',  `wf_is_global` tinyint(1) NOT NULL DEFAULT '-1' COMMENT '是否全域變數(1是-1否)',  `wf_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '欄位顯示類型(1編輯框2單選框3多選框4下拉框5文字框)',  `wf_value_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '數實值型別(1字串型2數值型3隻允許英文4 email型5datetime型 )',  `wf_link_type` int(5) DEFAULT NULL COMMENT '關聯多項實值型別(1部門2角色)',  PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='表單欄位表'

CREATE TABLE `workflow_option` (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '流水號',  `wo_fields_id` int(11) NOT NULL COMMENT '欄位表id',  `wo_key` varchar(40) NOT NULL COMMENT '選項標識',  `wo_value` varchar(100) NOT NULL COMMENT '選項值',  PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='自訂的選項資料'

CREATE TABLE `workflow_rule` (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '流水號',  `wr_line_id` int(11) NOT NULL COMMENT '工作流程線路id',  `wr_field_name` varchar(30) DEFAULT NULL COMMENT '變數欄位表id',  `wr_param_name` varchar(30) DEFAULT NULL COMMENT '參數值',  `wr_rule` tinyint(1) DEFAULT NULL COMMENT '變數與參數值的關係(1大於2小於3等於4大於或等於5小於或等於6包含7不包含)',  `wr_type` tinyint(1) NOT NULL DEFAULT '-1' COMMENT '規則類型,是否自訂規則(1是-1否)',  `wr_custom_rule` text COMMENT '自訂的規則的內容',  `wr_desc` varchar(500) DEFAULT NULL COMMENT '規則說明',  PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='工作流程規則表'

CREATE TABLE `workflow_api` (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '流水號',  `wa_name` varchar(20) NOT NULL COMMENT '介面名稱',  `wa_desc` varchar(500) DEFAULT NULL COMMENT '介面描述',  `wa_path` varchar(1000) NOT NULL COMMENT '介面路徑',  `wa_module_name` varchar(50) DEFAULT NULL COMMENT '模組名稱',  `wa_function_name` varchar(50) NOT NULL COMMENT '執行函數名稱',  PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='工作流程事件表'

CREATE TABLE `workflow_api_fields` (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '流水號',  `waf_api_id` int(11) NOT NULL COMMENT '介面表id',  `waf_cn_name` varchar(30) NOT NULL COMMENT '中文名稱',  `waf_en_name` varchar(50) NOT NULL COMMENT '英文名稱',  `waf_value_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '變數類型(1字元型2數值型3布爾型4數組型)',  `waf_defalue_value` text COMMENT '變數預設值',  `waf_fields_to` int(11) DEFAULT NULL COMMENT '介面變數對應的欄位變數表id',  `waf_desc` varchar(200) DEFAULT NULL COMMENT '變數說明',  PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='介面變數表'

CREATE TABLE `workflow_instance` (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '流水號',  `wi_baseinfo_id` int(11) NOT NULL COMMENT '工作流程屬性工作表id',  `wi_name` varchar(100) NOT NULL COMMENT '執行個體名字',  `wi_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '狀態(-1未啟動1啟動2運行中3結束)',  `wi_run_user_id` int(11) DEFAULT NULL COMMENT '執行個體啟動人id',  `wi_run_time` int(11) DEFAULT NULL COMMENT '啟動時間',  PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='工作流程執行個體表'

CREATE TABLE `workflow_instance_datas` (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '流水號',  `wif_instance_id` int(11) NOT NULL COMMENT '工作流程執行個體id',  `wif_fields_id` int(11) NOT NULL COMMENT '表單欄位表id',  `wif_data` varchar(1000) DEFAULT NULL COMMENT '欄位值',  PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='表單資料表'

CREATE TABLE `workflow_instance_step` (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '流水號',  `wis_instance_id` int(11) NOT NULL COMMENT '工作流程執行個體表id',  `wis_step_id` int(11) NOT NULL COMMENT '節點步驟id',  `wis_run_user_id` int(11) DEFAULT NULL COMMENT '執行人id(-1為系統)',  `wis_run_start_time` int(11) DEFAULT NULL COMMENT '執行開始時間',  `wis_run_end_time` int(11) DEFAULT NULL COMMENT '執行結束時間',  `wis_status` tinyint(1) DEFAULT '1' COMMENT '狀態(1執行中2已結束)',  `wis_turn_desc` varchar(1000) DEFAULT NULL COMMENT '流轉備忘',  `wis_accept_user_id` int(11) DEFAULT NULL COMMENT '接收人id(-1為系統)',  PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='執行個體節點步驟表'

CREATE TABLE `workflow_log_instance_step` (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '流水號',  `wlis_instance_id` int(11) NOT NULL COMMENT '工作流程執行個體表id',  `wlis_step_id` int(11) NOT NULL COMMENT '節點步驟id',  `wlis_run_user_id` int(11) DEFAULT NULL COMMENT '執行人id(-1為系統)',  `wlis_run_start_time` int(11) DEFAULT NULL COMMENT '執行開始時間',  `wlis_run_end_time` int(11) DEFAULT NULL COMMENT '執行結束時間',  `wlis_status` tinyint(1) DEFAULT '1' COMMENT '狀態(1執行中2已結束)',  `wlis_runback_step_id` int(11) DEFAULT NULL COMMENT '回退到步驟id',  `wlis_runback_desc` varchar(200) DEFAULT NULL COMMENT '回退說明',  PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='節點步驟日誌表'



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.