呂震宇 王嘉興 林永民 張培培 夏永瀅



DOI:10.19850/j.cnki.2096-4706.2024.01.022
收稿日期:2023-04-23
基金項目:河北省高等學校人文社會科學研究項目“基于動態知識管理的應急數據采集與管理方案設計”(SD2021049)
摘? 要:針對通用數據采集需要采集動態多樣的數據,采集任務需要多級轉發,采集到的數據需要逐級審核匯總,同時還要確保不同用戶數據間的安全隔離等問題,設計了支持多級轉發數據采集任務的關系型數據存儲方案。通過為數據采集任務動態構建數據字段以及使用序列化LOB,實現了通用數據采集任務的統一關系型數據存儲。借助“自關聯表”,實現了填表類與追加類兩種數據采集方式下數據采集任務的多級轉發、追蹤與審核匯總。父子任務的狀態聯動躍遷進一步降低了多級數據采集中狀態管理的復雜度。
關鍵詞:數據采集;多級轉發;關系型數據庫
中圖分類號:TP301? 文獻標識碼:A? 文章編號:2096-4706(2024)01-0108-05
Design of Relational Data Storage Scheme for Multi-level Forwarding Data Collection Tasks
LYU Zhenyu, WANG Jiaxing, LIN Yongmin, ZHANG Peipei, XIA Yongying
(School of Economics and Management, North China University of Science and Technology, Tangshan? 063210, China)
Abstract: In response to the need to collect dynamic and diverse data for universal data collection, the collection task requires multi-level forwarding, and the collected data needs to be reviewed and summarized level by level. At the same time, it is necessary to ensure the security isolation between different user data, and other issues. A relational data storage scheme that supports multi-level forwarding data collection tasks has been designed. By dynamically constructing data fields for data collection tasks and using serialized LOBs, unified relational data storage for universal data collection tasks has been achieved. By using the “self association table”, the data collection task can be forwarded, tracked, and reviewed at any level in two types of data collection methods: filling in tables and adding tables. The state linkage transition of parent-child tasks further reduces the complexity of state management in multi-level data collection.
Keywords: data collection; multi-level forwarding; relational database
0? 引? 言
在當今信息時代,數據采集的重要性日益凸顯。數據采集的質量和效率直接影響后續數據處理和決策分析的準確性和可靠性[1]。目前相關領域已經擁有大量專用信息采集系統,例如報稅系統、電費收繳系統等。這些系統只適用于本行業或某項特定的工作,缺乏廣泛的適用性。通用信息采集系統因其適用場景多、采集內容靈活多變,應用范圍越來越廣,例如網上問卷調查系統、在線表單等。
數據采集按照采集方式可分為填表類和追加類兩種[2]。填表類數據采集是指待填寫數據與填寫人員一一對應,用戶只能填寫自己的數據記錄,不得對現有數據做追加或刪除(例如現有員工聯系電話信息采集);追加類數據采集允許用戶追加或刪除數據記錄并填入相關信息,但不得修改、刪除其他人填寫的記錄(例如運動會參賽項目報名信息采集)。
雖然數據采集方式與采集內容多種多樣,但數據采集任務通常都需要按照組織層級逐級下發,采集到的數據也需要逐級匯總上報。這種采集任務多級下發與上報的數據采集模式廣泛應用于各種領域[3-5],可以有效提高數據采集任務完成效率[6]。此外,數據采集對信息隔離性與安全性的要求也比較高,數據錄入人員不希望自己錄入的信息被除上級以外的其他人員看到。
綜上,專用信息采集系統功能強大但適用面窄。現有通用數據采集系統多以共享文檔或電子表單形式存在,無法對數據采集任務進行多級轉發,采集到的數據也無法逐級審核匯總,數據的隔離性與安全性較差。因此,需要開發一種能夠同時支持填表類與追加類數據采集,能夠多級轉發數據采集任務并逐級審核匯總,確保不同人員錄入的數據相互隔離的通用數據采集系統。
1? 多級轉發數據采集任務
1.1? 應用場景
多級轉發數據采集任務廣泛應用于任務分配、教育教學、協同辦公、應急救援、疫情防控等領域。在數據采集管理任務中經常會出現需要多級轉發的情況,通常需要進行任務協調和任務分配[7]。例如在一個復雜的項目管理中,任務可能需要分配給多個團隊和個人,我們要確保任務能夠合理地分配給不同的執行者,并按照一定的優先級進行調度。
在教育教學領域,教師需要向學生下發任務并進行任務追蹤,還需要收集學生的基本信息、成績、健康信息等數據。任務往往由學校下發到不同院系,再由教師進一步下發到學生。任務的逐級下發對應著任務逐級匯總上報的需求。對任務的多級管理有利于高校對教育數據的有效管理,提高教學狀態評估水平[8]。在協同辦公領域,需要對任務數據進行分解,分別對任務進行處理并匯總上報[9]。在應急救援領域,需要對各方應急物資進行實時動態統計和追蹤,救援物資信息是不斷更新的,需要對追加型信息進行任務采集管理,按照不同功能將救援物資分配給相應的管理員,對采集任務進行多級轉發。同樣地,在疫情防控領域,疫情信息的發布和通報、體溫信息和核酸信息的采集,往往是逐級逐層開展的,需要對信息和采集任務進行多級化管理[10]。
在這些場景中,任務多級轉發能夠確保任務被合理地分配和處理,并且可以跟蹤任務的狀態和進度。同時,任務多級轉發也可以提高工作效率,減少任務的延誤和錯誤。填表型數據采集任務需要用戶的參與,而追加型數據采集任務則可以通過自動化技術實現數據的持續更新和追加。
1.2? 多級轉發數據采集任務活動圖
在一個支持多級轉發的數據采集任務中,一個用戶可能同時承擔數據采集任務的創建者、轉發者、完成者等角色,通過不同角色構建相互協調配合的數據采集任務鏈條。具體活動圖如圖1所示。
具體活動過程為:任務發布者在系統中創建任務并發布給第1級任務完成者。第1級任務完成者決定該任務是否轉發,如果需要轉發則將該任務轉發給第2級任務完成者,此時自己的角色就變成了任務轉發者,需要對下一級任務完成者提交的數據進行審核,審核通過后上報上一級任務發布(轉發)者。第2級任務完成者可根據情況決定是否將任務繼續向下轉發,這就形成了數據采集任務的多級轉發和多級審核匯總。如若任務不需要轉發,任務完成者自己完成數據填寫并提交,上一級任務發布(轉發)者負責對通過自己轉發的采集任務所采集到的數據進行審核。若審核不通過,任務將被逐級退回至任務完成人,修改后再逐級上報審核,直至任務創建者審核通過并終結任務。
1.3? 多級轉發數據采集任務狀態圖
一個數據采集任務從創建到多級轉發再到最終被提交確認共有9種狀態,分別是:待發布、待完成、草稿、已轉發、已提交、待審核、已退修、待修改、已完成。由于存在數據采集任務的多級轉發,父任務狀態和子任務狀態通常是分開的,各自獨立變化。但在某些操作下,父任務狀態與子任務狀態之間存在“聯動”行為。
圖2展示了父子任務狀態躍遷的“聯動”過程。圖中采用垂直虛線將父任務、子任務、孫任務分割開來;跨越垂直虛線的水平箭頭表示父子任務間的狀態“聯動”。例如在父任務中執行了“任務轉發”動作,將使父任務的狀態變為“已轉發”,同時子任務的狀態變為“待完成”。
2? 通用數據采集存儲方案設計
2.1? 通用數據采集系統概念模型設計
為確保數據采集的通用性,在底層數據存儲體系方案中采取模式(Schema,采集信息包含的字段)與數據相分離的設計。一個數據采集任務對應的數據模式包含多個字段,不同的字段擁有不同的字段名、數據類型、數據長度、約束條件、是否只讀等,存儲在“字段”表中。動態、靈活的字段組合決定了數據采集任務的通用性。
數據采集任務要下發給多個數據填報者,每個填報者填報一條或多條任務明細記錄。在自定義數據采集模式的約束下,所有采集到的數據存儲在任務明細表中,任務與任務明細表之間形成一對多的關系,如圖3所示。
2.2? 非關系型數據的關系存儲方案設計
數據采集任務所采集數據的Schema信息是在字段表中動態定義的,因此不同數據采集任務采集到的數據格式也不盡相同,為了實現動態Schema下的通用數據存儲,任務明細表中除部分通用字段(例如修改時間、創建者等)外,其余信息均通過序列化LOB的形式以字符串格式存儲于數據庫之中。首先將采集到的“字段-值”以“Key-Value”的格式轉化為數據對象并序列化成JSON字符串存儲在“任務明細”表中。當需要檢索數據或將數據呈現在用戶界面時,可通過反序列化將字符串重新轉化為數據對象,如圖4所示。
3? 多級轉發數據采集任務存儲方案設計
使用自關聯表實現多層級任務轉發的關系存儲方案設計,支持數據采集任務的任意多級轉發和匯總,并可有效跟蹤和監控任務的狀態和進度,從而確保數據采集任務能夠按時完成并保證數據采集的準確性和全面性。下面針對填表類和追加類兩種數據采集方式,給出支持多級任務轉發的關系數據存儲方案。
3.1? 填表類數據采集任務數據庫設計
填表類數據采集方式下,需要填寫的任務明細記錄是固定的,填表人無法追加或刪除任務明細記錄,但可以轉發給他人填寫,最終形成多級轉發模式。多級任務轉發是一種典型的樹形結構任務分解的過程,一項任務被分解給多個人來完成,這些人再繼續對任務進行分解,從而形成樹形結構。
填表類數據采集任務多級轉發數據庫概念模型設計如圖5所示。
任務轉發通過任務轉發表中的“任務明細_父任務明細”自關聯關系實現。任務轉發表記錄了任務明細如何被逐級轉發給不同用戶的過程,可以通過控制任務轉發狀態來控制數據的可見性與可編輯性。
以采集學生電話號碼為例,輔導員事先準備好所有需要采集電話號碼的學生名單(采集任務明細),然后以班為單位將采集任務下發給各班班長(任務轉發),各班班長再將收到的任務繼續轉發給各宿舍的宿舍長(多級任務轉發),最終由宿舍長逐一完成聯系電話填寫,具體過程如下:
1)初始狀態,如圖6所示。
2)輔導員將采集任務轉發給班長1、班長2,如圖7所示。
3)班長1將任務轉發給宿舍長1、宿舍長2,如圖8所示。
3.2? 追加類數據采集任務數據庫設計
追加類數據采集模式初始狀態下任務明細記錄為空,需要由填表人逐一添加。填報人可以根據需要添加新記錄,也可以刪除或編輯自己添加的記錄,填報人不具備修改其他人所填寫任務明細記錄的權限。這種權限控制機制有助于保護數據的安全性和準確性,防止誤操作或惡意修改。
無論填報人是否添加了記錄,均可將任務繼續轉發給其他人員。在轉發任務時,被轉發者將獲得向任務明細表中添加記錄的權限。為了確保數據的完整性和可追溯性,每條記錄的狀態需要單獨記錄,而不是使用任務轉發表進行記錄。這種記錄方式有助于確保任務執行情況的準確性,并為后續的數據分析和處理提供依據。追加類數據采集任務多級轉發數據庫概念模型設計如圖9所示。
以運動會報名任務為例,學校首先創建運動會報名數據采集任務,然后將任務轉發給各個學院的輔導員,輔導員可以自行向任務明細表中追加運動會報名記錄,也可以將任務二次轉發給各班班長,再由各班班長向任務明細表中追加運動會報名記錄。凡是接到任務的用戶既有權向任務明細表中添加記錄,也有權將任務轉發,兩種操作可同時進行。
以下步驟列舉了追加類數據采集任務在多級轉發過程中各表格數據的變化過程。
1)初始狀態,如圖10所示。
2)輔導員在自己填寫運動會報名記錄的同時將任務轉發給A1班班長,B學院輔導員將運動會報名任務轉發給B1班和B2班班長,如圖11所示。
3)B1班班長將運動會報名任務再次轉發給B1班支書,B1班支書填寫一條報名記錄,如圖12所示。
追加類任務的任務狀態記錄在任務明細表中,無須多級審核。任務發起人擁有對任務的最終審核權。這種設計模式不僅能夠靈活處理多級任務轉發的關系存儲,還能夠很好地支持查詢和更新操作。對任務進行分層和組織,能夠更加清晰地描述任務之間的關系,有利于任務的分配和管理。
3.3? 支持兩種采集方式的數據庫設計
混合填表類與追加類數據采集數據庫設計,得到如圖13所示的同時支持兩種數據采集方式的多級轉發數據庫設計方案。在該方案中,通過引入“任務類型”實體區分兩種不同的數據采集類型;新設計的任務轉發表可以同時支持兩種數據采集任務的多級轉發,實現了多級轉發通用數據采集系統的關系型數據存儲設計。
4? 結? 論
多級轉發數據采集任務的關系數據存儲方案已成功應用于《通用應急數據采集管理系統》,并取得了良好的數據采集任務多級轉發與逐級匯總效果。用戶在系統中輸入的數據彼此隔離,確保了數據的安全性。實踐表明,動態任務模式(Schema)與基于序列化LOB的數據存儲方案設計能夠有效支撐通用數據采集任務;基于“自關聯表”的任務轉發關系型數據存儲設計,能夠同時支持填表類和追加類兩種數據采集方式的多級任務轉發與追蹤。
參考文獻:
[1] 姚俊萍,范守祥,李曉軍.網絡數據多通道采集質量跨層控制方法仿真 [J].計算機仿真,2019,36(10):289-292.
[2] 王小鳳.表格數據的采集和處理 [D].蘇州:蘇州大學,2002.
[3] 李華,楊湘江,趙兵.一種應用于電力信息采集系統安全任務下發的方法 [J].電測與儀表,2014,51(6):92-94.
[4] 李銀,廖麗華.一種可快速多層級下發任務的目標管理系統 [J].信息通信,2019(12):147-149.
[5] 李林,鄭海寧,彭帆,等.基于表驅動的動態數據上報管理系統研究 [J].農業機械學報,2017,48(12):190-201.
[6] 葉超,許洪云,李紫川,等.基于演化博弈的多智能體任務轉發機制 [J].計算機應用與軟件,2015,32(4):15-18+103.
[7] 范德一.基于博弈算法的多智能體系統任務轉發的研究 [D].天津:天津理工大學,2021.
[8] 曲亮生,李宇輝,宋瑤瑤.高等院校教育數據采集項目管理成熟度研究 [J].項目管理技術,2022,20(11):99-102.
[9] 李亞明.基于用戶體驗的CSCW在線文檔平臺交互設計研究 [D]. 濟南:山東大學,2020.
[10] 熊光魁,李良成,吳永勝,等.災害疫情、突發衛生事件信息管理系統的實現與應用 [J].中國預防醫學雜志,2002(3):39-42.
作者簡介:呂震宇(1976—),男,漢族,山東安丘人,教授,碩士,研究方向:信息管理與信息系統、數據分析與挖掘。