本公開涉及數(shù)據(jù)處理
技術領域:
,具體地,涉及一種管理表單數(shù)據(jù)的方法及裝置。
背景技術:
:表單是Web頁面上常用的一種數(shù)據(jù)采集工具。用戶填寫到表單中的數(shù)據(jù)可能是需要多次修改的,相應地,需要多次提交表單,以保存表單數(shù)據(jù)。相關技術中,對表單數(shù)據(jù)的保存是持續(xù)積累的,不僅保存最新表單數(shù)據(jù),還保存歷史表單數(shù)據(jù)。而最新表單數(shù)據(jù)和歷史表單數(shù)據(jù)有重復部分,因此,造成了存儲空間的浪費。舉例來講,已保存的表單數(shù)據(jù)可能如表1所示。表1已保存的表單數(shù)據(jù)列表姓名性別提交時間提交內(nèi)容張飛男2016-03-03不同意張飛男2016-03-04補充建議張飛男2016-03-05暫停處理其中,最新表單數(shù)據(jù)和歷史表單數(shù)據(jù)的重復部分為:姓名-張飛,性別-男。顯然,這些重復數(shù)據(jù)的保存會浪費存儲空間。技術實現(xiàn)要素:本公開的目的是提供一種管理表單數(shù)據(jù)的方法及裝置,以節(jié)約存儲空間,提高存儲空間的利用率。為了實現(xiàn)上述目的,本公開提供一種管理表單數(shù)據(jù)的方法,所述方法包括:在檢測到針對具有第一標識的第一表單的首次提交操作時,將所述首次提交操作所提交的各個字段的數(shù)值存儲到具有所述第一標識的初始提交表中;在檢測到針對具有所述第一標識的第二表單的非首次提交操作時,確定所述非首次提交所提交的各個字段的數(shù)值是否發(fā)生變化;將所述非首次提交所提交的各個字段中數(shù)值發(fā)生變化的字段存儲到具有所述第一標識的歷史痕跡表中。可選地,所述在檢測到針對具有所述第一標識的第二表單的非首次提交操作時,確定所述非首次提交所提交的各個字段的數(shù)值是否發(fā)生變化,包括:在檢測到針對具有所述第一標識的第二表單的非首次提交操作時,獲得所述第二表單包括的各個區(qū)域的Hash值;確定所述第二表單包括的各個區(qū)域的Hash值相比于所述第一表單包括的各個區(qū)域的Hash值是否發(fā)生變化;所述將所述非首次提交所提交的各個字段中數(shù)值發(fā)生變化的字段存儲到具有所述第一標識的歷史痕跡表中,包括:獲得所述第二表單包括的目標區(qū)域,所述目標區(qū)域為Hash值發(fā)生變化的區(qū)域;將所述目標區(qū)域中數(shù)值發(fā)生變化的字段存儲到具有所述第一標識的歷史痕跡表中。可選地,所述將所述目標區(qū)域中數(shù)值發(fā)生變化的字段存儲到具有所述第一標識的歷史痕跡表中,包括:將所述目標區(qū)域中各個字段與所述第一表單中相應區(qū)域的各個字段比較,判斷數(shù)值是否發(fā)生變化;將所述目標區(qū)域中數(shù)值發(fā)生變化的字段存儲到具有所述第一標識的歷史痕跡表中??蛇x地,所述將數(shù)值發(fā)生變化的字段存儲到具有所述第一標識的歷史痕跡表中,包括:將所述數(shù)值發(fā)生變化的字段以JSON數(shù)據(jù)格式存儲到具有所述第一標識的歷史痕跡表中,所述JSON數(shù)據(jù)格式至少包括所述提交操作發(fā)生的提交時間以及發(fā)生變化的數(shù)值。可選地,所述方法還包括:在檢測到針對具有所述第一標識的目標表單的查詢操作時,獲取所述查詢操作發(fā)生的查詢時間;讀取具有所述第一標識的初始提交表以及具有所述第一標識的歷史痕跡表;提取具有所述第一標識的歷史痕跡表中提交時間在所述查詢時間之前的歷史痕跡記錄;將提取到的歷史痕跡記錄與所述初始提交表中的記錄合并后輸出。本公開第二方面還提供一種管理表單數(shù)據(jù)的裝置,所述裝置包括:第一存儲模塊,用于在檢測到針對具有第一標識的第一表單的首次提交操作時,將所述首次提交操作所提交的各個字段的數(shù)值存儲到具有所述第一標識的初始提交表中;確定模塊,用于在檢測到針對具有所述第一標識的第二表單的非首次提交操作時,確定所述非首次提交所提交的各個字段的數(shù)值是否發(fā)生變化;第二存儲模塊,用于將所述非首次提交所提交的各個字段中數(shù)值發(fā)生變化的字段存儲到具有所述第一標識的歷史痕跡表中??蛇x地,所述確定模塊包括:第一獲得子模塊,用于在檢測到針對具有所述第一標識的表單的非首次提交操作時,獲得所述第二表單包括的各個區(qū)域的Hash值;確定子模塊,用于確定所述第二表單包括的各個區(qū)域的Hash值相比于所述第一表單包括的各個區(qū)域的Hash值是否發(fā)生變化;所述第二存儲模塊包括:第二獲得子模塊,用于獲得所述第二表單包括的目標區(qū)域,所述目標區(qū)域為Hash值發(fā)生變化的區(qū)域;存儲子模塊,用于將所述目標區(qū)域中數(shù)值發(fā)生變化的字段存儲到具有所述第一標識的歷史痕跡表中。可選地,所述第一存儲子模塊包括:判斷子模塊,用于將所述目標區(qū)域中各個字段與所述第一表單中相應區(qū)域的各個字段比較,判斷數(shù)值是否發(fā)生變化;第二存儲子模塊,用于將所述目標區(qū)域中數(shù)值發(fā)生變化的字段存儲到具有所述第一標識的歷史痕跡表中??蛇x地,所述第二存儲模塊用于:將所述數(shù)值發(fā)生變化的字段以JSON數(shù)據(jù)格式存儲到具有所述第一標識的歷史痕跡表中,所述JSON數(shù)據(jù)格式至少包括所述提交操作發(fā)生的提交時間以及發(fā)生變化的數(shù)值??蛇x地,所述裝置還包括:獲取模塊,用于在檢測到針對具有所述第一標識的目標表單的查詢操作時,獲取所述查詢操作發(fā)生的查詢時間;讀取模塊,用于讀取具有所述第一標識的初始提交表以及具有所述第一標識的歷史痕跡表;提取模塊,用于提取具有所述第一標識的歷史痕跡表中提交時間在所述查詢時間之前的歷史痕跡記錄;輸出模塊,用于將提取到的歷史痕跡記錄與所述初始提交表中的記錄合并后輸出。通過上述技術方案,將表單分為兩部分存儲,將初始提交的數(shù)據(jù)存儲到初始提交表中,將發(fā)生變化的數(shù)據(jù)存儲到歷史痕跡表中。因此,僅存儲發(fā)生變化的數(shù)據(jù),避免了重復存儲相同的數(shù)據(jù),節(jié)約了存儲空間,提高了存儲空間的利用率。本公開的其他特征和優(yōu)點將在隨后的具體實施方式部分予以詳細說明。附圖說明附圖是用來提供對本公開的進一步理解,并且構成說明書的一部分,與下面的具體實施方式一起用于解釋本發(fā)明,但并不構成對本公開的限制。在附圖中:圖1為本發(fā)明實施例提供的一種管理表單數(shù)據(jù)的方法的流程圖;圖2為本發(fā)明實施例提供的一種管理表單數(shù)據(jù)的方法的另一流程圖;圖3為本發(fā)明實施例提供的一種管理表單數(shù)據(jù)的方法中步驟S132的流程圖;圖4為本發(fā)明實施例中表單包括的各個區(qū)域的示意圖;圖5為本發(fā)明實施例提供的一種管理表單數(shù)據(jù)的裝置的框圖。具體實施方式以下結合附圖對本公開的具體實施方式進行詳細說明。應當理解的是,此處所描述的具體實施方式僅用于說明和解釋本發(fā)明,并不用于限制本公開。在
背景技術:
中已經(jīng)說明,相關技術中因重復存儲相同的數(shù)據(jù),所以造成了存儲空間的浪費。為改善上述問題,本發(fā)明實施例提供了一種管理表單數(shù)據(jù)的方法。請參考圖1,圖1為本發(fā)明實施例提供的一種管理表單數(shù)據(jù)的方法的流程圖。如圖1所示,該方法包括以下步驟:步驟S11:在檢測到針對具有第一標識的第一表單的首次提交操作時,將所述首次提交操作所提交的各個字段的數(shù)值存儲到具有所述第一標識的初始提交表中;步驟S12:在檢測到針對具有所述第一標識的第二表單的非首次提交操作時,確定所述非首次提交所提交的各個字段的數(shù)值是否發(fā)生變化;步驟S13:將所述非首次提交所提交的各個字段中數(shù)值發(fā)生變化的字段存儲到具有所述第一標識的歷史痕跡表中。本公開中,將表單數(shù)據(jù)分為兩部分,一部分是最初提交時的原始數(shù)據(jù),一部分是后續(xù)提交時發(fā)生變化的數(shù)據(jù)。使用初始提交表存儲原始數(shù)據(jù),使用歷史痕跡表存儲發(fā)生變化的數(shù)據(jù)。為了將初始提交表和歷史痕跡表聯(lián)系起來,為表單分配標識,同一表單的初始提交表和歷史痕跡表具有同一標識。舉例來講,原本具有第一標識的第一表單內(nèi)沒有數(shù)據(jù),是空表單,在檢測到針對該第一表單的提交操作時,檢測到第一表單內(nèi)有數(shù)據(jù),則由于從空表單變?yōu)橐烟顚懕韱?,所以可以認為該提交操作是針對第一表單的首次提交操作。然后,將首次提交操作所提交的各個字段的數(shù)值存儲到具有第一標識的初始提交表中。一種可能的初始提交表如表2所示。表2初始提交表標識姓名性別提交時間提交內(nèi)容001張飛女2016-03-03不同意在實際使用表單的過程中,可能需要對表單中的數(shù)據(jù)進行多次修改,相應地,需要多次提交修改后的表單。為了存儲對第一表單的歷史修改,使用第一標識的歷史痕跡表。每次提交修改后的表單,需要將修改后的表單包括的各個字段的數(shù)值與初始提交操作所提交的各個字段的數(shù)值進行比較,如果發(fā)生改變,則將數(shù)值發(fā)生改變的字段存儲到歷史痕跡表中。舉例來講,針對表1所示的第一表單,用戶做了多次修改,并多次提交。第一次修改是在2016-03-04,修改的內(nèi)容是:補充建議,提交的內(nèi)容如表2所示。第二次修改是在2016-03-05,修改的內(nèi)容是:暫停處理,提交的內(nèi)容如表3所示。表2第一次修改后提交的表單數(shù)據(jù)姓名性別提交時間提交內(nèi)容張飛男2016-03-04補充建議表3第二次修改后提交的表單數(shù)據(jù)姓名性別提交時間提交內(nèi)容張飛男2016-03-05暫停處理將表2和表3中各個字段的值分別與表1中各個字段的值進行比較,發(fā)生變化的字段均為提交時間以及提交內(nèi)容,則將發(fā)生變化的字段存入具有第一標識的歷史痕跡表中。一種可能的歷史痕跡表如表4所示。表4歷史痕跡表由上述分析可以看出,本公開中,對于表單數(shù)據(jù)的存儲分為兩部分:初始提交表和歷史痕跡表,使用同一標識將初始提交表和歷史痕跡表聯(lián)系起來,這樣,如果后續(xù)修改有發(fā)生變化的字段,則將發(fā)生變化的字段存儲到歷史痕跡表中,無需重復存儲未發(fā)生改變的數(shù)據(jù)(即與初始提交表相比相同的數(shù)據(jù))。因此,避免了重復存儲相同的數(shù)據(jù),節(jié)約了存儲空間,提高了存儲空間的利用率。在一種可能的實施方式中,如圖2所示,步驟S12包括以下步驟:步驟S121:在檢測到針對具有所述第一標識的第二表單的非首次提交操作時,獲得所述第二表單包括的各個區(qū)域的Hash值;步驟S122:確定所述第二表單包括的各個區(qū)域的Hash值相比于所述第一表單包括的各個區(qū)域的Hash值是否發(fā)生變化;如圖2所示,步驟S13包括以下步驟:步驟S131:獲得所述第二表單包括的目標區(qū)域,所述目標區(qū)域為Hash值發(fā)生變化的區(qū)域;步驟S132:將所述目標區(qū)域中數(shù)值發(fā)生變化的字段存儲到具有所述第一標識的歷史痕跡表中??蛇x地,如圖3所示,步驟S132包括以下步驟:步驟S1321:將所述目標區(qū)域中各個字段與所述第一表單中相應區(qū)域的各個字段比較,判斷數(shù)值是否發(fā)生變化;步驟S1322:將所述目標區(qū)域中數(shù)值發(fā)生變化的字段存儲到具有所述第一標識的歷史痕跡表中。其中,第一表單是首次提交操作所針對的具有第一標識的表單,即為首次提交操作所提交的表單。第二表單也是具有第一標識的表單,因為第二表單是基于第一表單進行修改后的表單,所以與第一表單具有相同的標識,為了便于區(qū)分,將首次提交的具有第一標識的表單記為第一表單,將非首次提交的具有第一標識的表單記為第二表單??紤]到有些表單包括的字段比較多,逐個字段對比以確認數(shù)值是否發(fā)生變化,效率較低,本公開提出將表單分為多個區(qū)域,然后計算第一表單以及第二表單的各個區(qū)域的Hash值,對比Hash值是否發(fā)生變化,確定出Hash值發(fā)生變化的區(qū)域,然后再對Hash值發(fā)生變化的區(qū)域中的各個字段的值進行對比,確定數(shù)值發(fā)生變化的字段,最后將數(shù)值發(fā)生變化的字段存儲到具有第一標識的歷史痕跡表中。舉例來講,如圖4所示的表單,包括多個區(qū)域,每個區(qū)域的字段所起的作用不同。在圖4所示的表單中,區(qū)域1包括常用注冊信息所使用的字段,包括:用戶名、密碼、email、密碼保護問題、密碼問題答案等。區(qū)域2包括聯(lián)系信息所使用的字段,包括:QQ、國家/地區(qū)、省份、城市、地址等。對于多個區(qū)域中的每個區(qū)域,依次進行輪詢,計算每個區(qū)域的Hash值并與初始提交表中相應區(qū)域的Hash值進行比較,確定Hash值發(fā)生變化的區(qū)域。對Hash值發(fā)生變化的區(qū)域,再逐個分析該區(qū)域內(nèi)的字段的值是否發(fā)生變化,最終將發(fā)生變化的字段添加到歷史痕跡表中。假設針對圖4所示的表單,用戶第一次填寫信息并首次提交后,保存的第一表單中用戶名為:admin,密碼為:bbb,email為:admin@example.cn,密碼保護問題為:ddd,密碼問題答案為:eee,QQ為:1234567,國家/地區(qū)為:中國,省份為:四川省,城市為:成都市,地址為:青羊區(qū)寧夏街。在用戶搬家之后,需要改變地址,改為:青羊區(qū)清江東路,其他信息保持不變。這樣,計算第一表單中區(qū)域1和區(qū)域2的Hash值,再計算修改后提交的表單(即為第二表單)中區(qū)域1和區(qū)域2的Hash值,由于區(qū)域1中字段的數(shù)值未發(fā)生改變,所以區(qū)域1的Hash值也未發(fā)生改變,而區(qū)域2的Hash值發(fā)生了改變。對區(qū)域2中的各個字段進行對比,進而確定地址字段發(fā)生改變,則將地址字段存儲到歷史痕跡表中。從上述分析可以看出,針對包括的字段較多的表單,通過分區(qū)域,對比各個區(qū)域的Hash值,確定Hash值發(fā)生變化的區(qū)域,提高了對比效率??蛇x地,步驟S13包括:將所述數(shù)值發(fā)生變化的字段以JSON數(shù)據(jù)格式存儲到具有所述第一標識的歷史痕跡表中,所述JSON數(shù)據(jù)格式至少包括所述提交操作發(fā)生的提交時間以及發(fā)生變化的數(shù)值。本發(fā)明實施例中,針對歷史痕跡表中的數(shù)據(jù),以JSON數(shù)據(jù)格式進行存儲,為了區(qū)分以及查看歷史痕跡表中的數(shù)據(jù),可以將提交操作發(fā)生的提交時間以及發(fā)生變化的數(shù)值一起存儲起來,這樣,通過歷史痕跡表就可以獲知在何時對表單中的數(shù)據(jù)進行了修改以及做了怎樣的修改。以表4所示的歷史痕跡表為例,以JSON數(shù)據(jù)格式存儲的歷史痕跡表可能如表5所示。表5以JSON數(shù)據(jù)格式存儲的歷史痕跡表可選地,本發(fā)明實施例還包括:在檢測到針對具有所述第一標識的目標表單的查詢操作時,獲取所述查詢操作發(fā)生的查詢時間;讀取具有所述第一標識的初始提交表以及具有所述第一標識的歷史痕跡表;提取具有所述第一標識的歷史痕跡表中提交時間在所述查詢時間之前的歷史痕跡記錄;將提取到的歷史痕跡記錄與所述初始提交表中的記錄合并后輸出。本發(fā)明實施例中,由于將表單數(shù)據(jù)分為兩部分存儲,所以在查詢歷史痕跡數(shù)據(jù)時,需要將初始提交表中的數(shù)據(jù)和歷史痕跡表中的數(shù)據(jù)進行合并,得到完整的數(shù)據(jù)進而輸出給用戶。在實際實施過程中,由于每個表單都有標識,所以如果想要查詢某個表單的歷史痕跡數(shù)據(jù),則可以將輸入表單的標識,例如:輸入第一標識,并點擊查詢,在檢測到該查詢操作后,即可根據(jù)第一標識讀取到具有第一標識的初始提交表以及具有第一標識的歷史痕跡表,然后,將查詢時間與歷史痕跡表中的提交時間對比,提取出提交時間在查詢時間之前的歷史痕跡記錄,最后,將提取出的歷史痕跡記錄與初始提交表中的記錄合并起來,得到完整的數(shù)據(jù)并輸出給用戶。舉例來講,假設用戶需要查詢標識為001的表單的歷史痕跡數(shù)據(jù),則輸入標識001并點擊查詢,在檢測到該查詢操作后,確定該查詢操作發(fā)生的查詢時間為2016-03-05,然后讀取標識為001的初始提交表,如2所示,并讀取標識為001的歷史痕跡表,如表5所示。接著針對歷史痕跡表,從中讀取出提交時間在查詢時間之前的歷史痕跡記錄,則提取出的記錄為:{提交時間:2016-03-04,提交內(nèi)容:補充建議}。最后,將提取到的歷史痕跡記錄與初始提交表中的記錄合并,得到的結果如表6所示。表6查詢歷史痕跡數(shù)據(jù)的結果姓名性別提交時間提交內(nèi)容張飛男2016-03-03不同意張飛男2016-03-04補充建議從以上分析可以看出,本發(fā)明實施例提出了一種新的獲取歷史痕跡數(shù)據(jù)的方法。由于該方法依賴于圖1-圖4所示的管理表單數(shù)據(jù)的方法,因此,間接得實現(xiàn)了節(jié)約存儲空間以及提高存儲空間的利用率?;谕话l(fā)明構思,本發(fā)明實施例還提供了一種管理表單數(shù)據(jù)的裝置。請參考圖5,圖5為本發(fā)明實施例提供的一種管理表單數(shù)據(jù)的裝置的框圖。該裝置100包括:第一存儲模塊110,用于在檢測到針對具有第一標識的第一表單的首次提交操作時,將所述首次提交操作所提交的各個字段的數(shù)值存儲到具有所述第一標識的初始提交表中;確定模塊120,用于在檢測到針對具有所述第一標識的第二表單的非首次提交操作時,確定所述非首次提交所提交的各個字段的數(shù)值是否發(fā)生變化;第二存儲模塊130,用于將所述非首次提交所提交的各個字段中數(shù)值發(fā)生變化的字段存儲到具有所述第一標識的歷史痕跡表中??蛇x地,所述確定模塊120包括:第一獲得子模塊,用于在檢測到針對具有所述第一標識的表單的非首次提交操作時,獲得所述第二表單包括的各個區(qū)域的Hash值;確定子模塊,用于確定所述第二表單包括的各個區(qū)域的Hash值相比于所述第一表單包括的各個區(qū)域的Hash值是否發(fā)生變化;所述第二存儲模塊130包括:第二獲得子模塊,用于獲得所述第二表單包括的目標區(qū)域,所述目標區(qū)域為Hash值發(fā)生變化的區(qū)域;第一存儲子模塊,用于將所述目標區(qū)域中數(shù)值發(fā)生變化的字段存儲到具有所述第一標識的歷史痕跡表中。可選地,所述第一存儲子模塊包括:判斷子模塊,用于將所述目標區(qū)域中各個字段與所述第一表單中相應區(qū)域的各個字段比較,判斷數(shù)值是否發(fā)生變化;第二存儲子模塊,用于將所述目標區(qū)域中數(shù)值發(fā)生變化的字段存儲到具有所述第一標識的歷史痕跡表中??蛇x地,所述第二存儲模塊130用于:將所述數(shù)值發(fā)生變化的字段以JSON數(shù)據(jù)格式存儲到具有所述第一標識的歷史痕跡表中,所述JSON數(shù)據(jù)格式至少包括所述提交操作發(fā)生的提交時間以及發(fā)生變化的數(shù)值??蛇x地,所述裝置還包括:獲取模塊,用于在檢測到針對具有所述第一標識的目標表單的查詢操作時,獲取所述查詢操作發(fā)生的查詢時間;讀取模塊,用于讀取具有所述第一標識的初始提交表以及具有所述第一標識的歷史痕跡表;提取模塊,用于提取具有所述第一標識的歷史痕跡表中提交時間在所述查詢時間之前的歷史痕跡記錄;輸出模塊,用于將提取到的歷史痕跡記錄與所述初始提交表中的記錄合并后輸出。以上結合附圖詳細描述了本發(fā)明的優(yōu)選實施方式,但是,本發(fā)明并不限于上述實施方式中的具體細節(jié),在本發(fā)明的技術構思范圍內(nèi),可以對本發(fā)明的技術方案進行多種簡單變型,這些簡單變型均屬于本發(fā)明的保護范圍。另外需要說明的是,在上述具體實施方式中所描述的各個具體技術特征,在不矛盾的情況下,可以通過任何合適的方式進行組合,為了避免不必要的重復,本發(fā)明對各種可能的組合方式不再另行說明。此外,本發(fā)明的各種不同的實施方式之間也可以進行任意組合,只要其不違背本發(fā)明的思想,其同樣應當視為本發(fā)明所公開的內(nèi)容。當前第1頁1 2 3