System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及計算機,特別涉及一種數據表的數據變更記錄方法、裝置、存儲介質及設備。
技術介紹
1、在傳統的軟件開發中,當需要對數據表中的數據進行變更時,需要對數據表中每個字段的數據變更進行維護記錄,并將數據變更記錄存儲到日志表中。
2、為了實現將數據變更記錄存儲到日志表中,需要對存儲過程編寫代碼,而編寫代碼涉及到代碼開發,會增加開發成本。并且,每個系統都需要對每張數據表的數據變更記錄進行存儲,不同的系統需要實施多次存儲。另外,存儲數據變更記錄的工作量較大,我們通常只會關注數據表中的重點字段,不能全方位的記錄數據變更。
技術實現思路
1、本申請提供了一種數據表的數據變更記錄方法、裝置、存儲介質及設備,用于解決存儲數據變更需要進行代碼開發,且不同的系統需要實施多次存儲,不能全方位記錄數據變更的問題。所述技術方案如下:
2、根據本申請的第一方面,提供了一種數據表的數據變更記錄方法,所述方法包括:
3、利用日志表生成器選擇數據表,并根據所述數據表生成操作日志表和狀態日志表,所述操作日志表用于記錄對所述數據表的變更類型和變更前后的數據,所述狀態日志表用于記錄所述數據表的變更狀態,且所述操作日志表和所述狀態日志表通過同一通用唯一識別碼uuid關聯;
4、當變更所述數據表中的數據時,利用觸發器生成器根據變更類型生成對應的觸發器;
5、當所述變更類型是插入數據時,利用對應的第一觸發器基于所述插入數據在所述操作日志表和所述狀態日志表中插入變更記
6、當所述變更類型是修改數據時,利用對應的第二觸發器基于所述修改數據在所述操作日志表和所述狀態日志表中插入變更記錄。
7、在一種可能的實現方式中,所述利用對應的第一觸發器基于所述插入數據在所述操作日志表和所述狀態日志表中插入變更記錄,包括:
8、利用所述第一觸發器生成一個uuid;
9、利用所述第一觸發器在所述操作日志表中插入第一變更記錄,設置所述第一變更記錄的自增標識,將所述第一變更記錄中的uuid字段的數值設置為生成的所述uuid,將所述第一變更記錄中的操作類型字段的數值設置為第一數值,將所述第一變更記錄中的歷史類型字段的數值設置為第二數值,將所述插入數據填充到所述第一變更記錄中對應的字段中,所述第一數值表示操作類型為插入,所述第二數值表示歷史類型為當前值;
10、利用所述第一觸發器在所述狀態日志表中插入第二變更記錄,將所述第二變更記錄中的uuid字段的數值設置為生成的所述uuid,按照字段將所述插入數據與所述數據表中原數據的數值進行比較,將比較結果填充到所述第二變更記錄中對應的字段中,所述比較結果包括第三數值和第四數值,所述第三數值表示字段的數值未變,所述第四數值表示新增字段的數值。
11、在一種可能的實現方式中,所述利用對應的第二觸發器基于所述修改數據在所述操作日志表和所述狀態日志表中插入變更記錄,包括:
12、利用所述第二觸發器生成一個uuid;
13、利用所述第二觸發器在所述操作日志表中插入第三變更記錄和第四變更記錄,設置所述第三變更記錄和所述第四變更記錄的自增標識,將所述第三變更記錄和所述第四變更記錄中的uuid字段的數值設置為生成的所述uuid,將所述第三變更記錄和所述第四變更記錄中的操作類型字段的數值設置為第五數值,將所述第三變更記錄中的歷史類型字段的數值設置為第六數值,將所述插入數據對應的原數據填充到所述第三變更記錄中對應的字段中,將所述第四變更記錄中的歷史類型字段的數值設置為第二數值,將所述插入數據填充到所述第三變更記錄中對應的字段中,所述第五數值表示操作類型為修改,所述第六數值表示歷史類型為上次值,所述第二數值表示歷史類型為當前值;
14、利用所述第二觸發器在所述狀態日志表中插入第五變更記錄,將所述第五變更記錄中的uuid字段的數值設置為生成的所述uuid,按照字段將所述插入數據與所述數據表中原數據的數值進行比較,將比較結果填充到所述第二變更記錄中對應的字段中,所述比較結果包括第三數值、第四數值、第七數值和第八數值,所述第三數值表示字段的數值未變,所述第四數值表示字段的數值是新增的,所述第七數值表示修改字段的數值,所述第八數值表示刪除字段的數值。
15、在一種可能的實現方式中,所述方法還包括:
16、獲取對所述數據表的查詢請求,所述查詢請求中攜帶有uuid;
17、在所述日志操作表和所述日志狀態表中查找所述uuid對應的變更記錄;
18、根據所述變更記錄生成變更結果,所述變更結果包括變更類型、變更字段和所述變更字段的數值;
19、對所述變更結果進行展示。
20、在一種可能的實現方式中,所述根據所述變更記錄生成變更結果,包括:
21、當所述變更記錄包括第三變更記錄、第四變更記錄和第五變更記錄時,將所述第五變更記錄中數值為第四數值或第七數值或第八數值的字段確定為變更字段;
22、將第四數值的變更字段的變更類型設置為新增,根據所述自增標識識別所述第四變更記錄,在所述第四變更記錄中獲取所述變更字段的當前值,得到變更結果;
23、將第七數值的變更字段的變更類型設置為修改,根據所述自增標識識別所述第三變更記錄和所述第四變更記錄,在所述第三變更記錄中獲取所述變更字段的上次值,在所述第四變更記錄中獲取所述變更字段的當前值,得到變更結果;
24、將第八數值的變更字段的變更類型設置為刪除,根據所述自增標識識別所述第三變更記錄,在所述第三變更記錄中獲取所述變更字段的上次值,得到變更結果。
25、在一種可能的實現方式中,所述根據所述變更記錄生成變更結果,包括:
26、當所述變更記錄包括第一變更記錄和第二變更記錄時,將所述第二變更記錄中數值為第四數值的字段確定為變更字段;
27、將所述變更字段的變更類型設置為新增,在所述第一變更記錄中獲取所述變更字段的當前值,得到變更結果。
28、在一種可能的實現方式中,所述對所述變更結果進行展示,包括:
29、當所述變更類型為新增時,以第一背景色展示所述變更結果中的當前值;
30、當所述變更類型為修改時,以第一背景色展示所述變更結果中的當前值,以第二背景色展示所述變更結果中的上次值,并對所述上次值設置刪除線標記;
31、當所述變更類型為刪除時,以第二背景色展示所述變更結果中的上次值,并對所述上次值設置刪除線標記。
32、根據本申請的第二方面,提供了一種數據表的數據變更記錄裝置,所述裝置包括:
33、選擇模塊,用于利用日志表生成器選擇數據表,并根據所述數據表生成操作日志表和狀態日志表,所述操作日志表用于記錄對所述數據表的變更類型和變更前后的數據,所述狀態日志表用于記錄所述數據表的變更狀態,且所述操作日志表和所述狀態日志表通過同一通用唯一識別碼uuid關聯;
<本文檔來自技高網...【技術保護點】
1.一種數據表的數據變更記錄方法,其特征在于,所述方法包括:
2.根據權利要求1所述的數據表的數據變更記錄方法,其特征在于,所述利用對應的第一觸發器基于所述插入數據在所述操作日志表和所述狀態日志表中插入變更記錄,包括:
3.根據權利要求1所述的數據表的數據變更記錄方法,其特征在于,所述利用對應的第二觸發器基于所述修改數據在所述操作日志表和所述狀態日志表中插入變更記錄,包括:
4.根據權利要求1至3任一項所述的數據表的數據變更記錄方法,其特征在于,所述方法還包括:
5.根據權利要求4所述的數據表的數據變更記錄方法,其特征在于,所述根據所述變更記錄生成變更結果,包括:
6.根據權利要求4所述的數據表的數據變更記錄方法,其特征在于,所述根據所述變更記錄生成變更結果,包括:
7.根據權利要求5貨6所述的數據表的數據變更記錄方法,其特征在于,所述對所述變更結果進行展示,包括:
8.一種數據表的數據變更記錄裝置,其特征在于,所述裝置包括:
9.一種計算機可讀存儲介質,其特征在于,所述存儲介質中存儲
10.一種計算機設備,其特征在于,計算機設備包括:權利要求8所述的數據表的數據變更記錄裝置。
...【技術特征摘要】
1.一種數據表的數據變更記錄方法,其特征在于,所述方法包括:
2.根據權利要求1所述的數據表的數據變更記錄方法,其特征在于,所述利用對應的第一觸發器基于所述插入數據在所述操作日志表和所述狀態日志表中插入變更記錄,包括:
3.根據權利要求1所述的數據表的數據變更記錄方法,其特征在于,所述利用對應的第二觸發器基于所述修改數據在所述操作日志表和所述狀態日志表中插入變更記錄,包括:
4.根據權利要求1至3任一項所述的數據表的數據變更記錄方法,其特征在于,所述方法還包括:
5.根據權利要求4所述的數據表的數據變更記錄方法,其特征在于,所述根據所述變更記錄生成變更...
【專利技術屬性】
技術研發人員:許緒滿,左磊,
申請(專利權)人:天聚地合蘇州科技股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。