System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及空間數據處理領域,具體涉及一種基于postgres的空間數據版本處理方法、裝置及可讀介質。
技術介紹
1、現在許多國家的測繪與地理信息機構以及相關部門都已經完成了大量基礎地理信息數據庫和其它空間數據成果。同時,地理信息系統的發展和應用也導致了空間數據的不斷增長。因此,海量空間數據的存儲和管理變得非常重要,也成為地理信息系統發展的一個瓶頸。目前,已有的空間數據存儲在版本管理方面并不夠充分,并且可能存在與現有系統不兼容的問題。
2、為了解決這些問題,可以引入合適的版本控制系統。版本控制系統可以追蹤和記錄對數據的修改,確保能夠隨時回溯到之前的版本。這樣即提高了數據的管理效率,也減少數據不一致的風險。當前一部分地理信息系統已經引入了版本控制,實現了對數據的版本管理。但是其版本控制功能是與地理信息系統相配套綁定的。其它的系統即無法調用版本管理功能,也無法讀取或調用這些過程數據,無法實現版本管理功能的通用。
3、現有的空間數據版本管理存在著如下缺點:
4、1、版本控制功能與地理信息系統綁定,其他系統無法調用版本管理功能或者讀取數據。以postgres數據庫為例,空間數據按圖層保存,并可通過讀取表數據實現對圖層數據的瀏覽和編輯。但是,在版本化后,獲取最新版本數據和編輯數據都需要通過版本管理功能進行,否則無法獲取完整的數據,因此其他系統無法直接讀取或編輯數據,也無法調用版本管理功能。
5、2、當前版本管理的編輯功能通常通過鎖定或副本方式實現數據的多用戶同步編輯管理:
6、
7、2)副本方式:將數據備份后進行編輯,但會產生大量的冗余數據。
8、3、多用戶管理時,數據融合在一張或多張表中,與用戶信息管理表緊密關聯,不方便數據識別和處理。當刪除用戶時,需要在不同關聯表中刪除關聯數據,否則會產生冗余數據并導致數據出錯。
技術實現思路
1、針對上述提到的技術問題。本申請的實施例的目的在于提出了一種基于postgres的空間數據版本處理方法、裝置及可讀介質,來解決以上
技術介紹
部分提到的技術問題。
2、第一方面,本專利技術提供了一種基于postgres的空間數據版本處理方法,包括以下步驟:
3、將空間圖層的矢量數據導入postgres數據庫中,postgres數據庫對應服務器架構,生成圖層數據表;
4、創建擴展版本管理表,根據擴展版本管理表在圖層數據表中增加版本管理相關信息,得到對應的分支擴展表;
5、新建當前用戶并創建對應的本地架構和本地版本管理表,響應于確定將空間圖層的矢量數據遷出到當前用戶對應的本地架構中,則更新本地版本管理表,創建分支擴展表對應的差分表、本地版本視圖和視圖觸發器,差分表用于記錄當前用戶的編輯內容,視圖觸發器用于對服務器架構對應的空間圖層的矢量數據進行編輯;
6、響應于確定當前用戶在本地架構中對空間圖層的矢量數據進行編輯,或者確定分支擴展表中的數據發生更新,則進行沖突判斷與解決,響應于確定不存在沖突或沖突已解決,則更新本地版本管理表中對應圖層的版本號,并將當前用戶的編輯內容所對應的版本記錄信息提交到分支擴展表中。
7、作為優選,圖層數據表的主要字段包括要素標識、空間字段和屬性字段,擴展版本管理表的主要字段包括版本號、備注信息、操作時間和用戶id,版本管理相關信息包括當前記錄的開始版本號、當前記錄的結束版本號以及與其關聯的父主鍵號和子主鍵號,當前記錄的開始版本號與擴展版本管理表中的版本號相對應,當前記錄的結束版本號表示當前記錄編輯保存后上傳到服務器架構時的版本號,父主鍵號對應當前記錄的來源的要素標識,表示當前記錄為來源的要素標識對應的記錄編輯后生成的新記錄,子主鍵號表示當前記錄編輯后生成新記錄的要素標識,當當前記錄的開始版本號與當前記錄的結束版本號相等,則說明對應的記錄已被刪除;本地版本管理表的主要字段為序號id、遷出時或更新時擴展版本管理表中的版本號的最大值、表名、遷出時或更新時分支擴展表中的要素標識的最大值和遷出時間,差分表的主要字段與擴展分支表的主要字段相同。
8、作為優選,還包括:
9、創建數據瀏覽架構,在數據瀏覽架構下創建分支擴展表所對應的視圖,視圖顯示最新的版本記錄信息。
10、作為優選,本地版本視圖顯示分支擴展表與差分表中信息的集合,從差分表中獲取的記錄的條件為:差分表中的結束版本號為空或者差分表中的結束版本號大于等于maxrev,并且差分表中的開始版本號不為空;
11、從分支擴展表中獲取的記錄的條件為:分支擴展表中的開始版本號小于或等于maxrev,并且分支擴展表中的結束版本號為空或者分支擴展表中的結束版本號大于等于maxrev,并且分支擴展表中的開始版本號不為空;
12、其中,maxrev為本地版本管理表中遷出時或更新時擴展版本管理表中的版本號的最大值。
13、作為優選,視圖觸發器包括與本地版本視圖對應的插入觸發器、更新觸發器、刪除觸發器。
14、作為優選,沖突判斷與解決的過程具體包括:
15、檢測服務器版本號是否比本地當前版本號大,其中,服務器版本號為擴展版本管理表中的版本號的最大值,本地當前版本號為本地版本管理表中表名相同的版本號,若是,則進行沖突判斷,否則確定當前用戶的編輯內容與其他用戶的編輯內容不存在沖突;
16、獲取差分表中的數據并判斷是否為空,若是,則確定當前用戶的編輯內容與其他用戶的編輯內容不存在沖突,否則進行沖突判斷;
17、檢查本地與服務器版本之間的更新表“圖層名_update_diff”是否存在,若是,則清空更新表,更新表的結構與分支擴展表的結構相同,否則創建更新表;
18、根據版本號獲取分支擴展表與當前用戶的編輯內容所對應的版本記錄信息之間的信息差異,并將其保存到更新表中;
19、將更新表與差分表進行比較,確定沖突信息;
20、創建沖突表,根據沖突信息生成沖突記錄并存在沖突表中,沖突表在分支擴展表的基礎上增加來源字段和操作類型字段,來源字段的值為差分表或分支擴展表,操作類型字段的值包括編輯或刪除;
21、響應于確定用戶在沖突表中需要刪除的沖突記錄,并根據需要刪除的沖突記錄中的來源字段確定需要刪除的沖突記錄的來源字段的值,并結合操作類型字段刪除差分表或分支擴展表所對應的記錄。
22、作為優選,還包括:
23、響應于確定當前用戶的編輯內容與其他用戶的編輯內容不存在沖突或沖突已解決,則根據差分表在擴展版本管理表中新增版本號信息,在分支擴展表中新增更新記錄信息,并修改原有的記錄信息,并清空差分表;
24、采用以下方式確定分支擴展表中的數據是否發生更新:
25、檢測服務器版本號是否比本地當前版本號大,其中,服務器版本號為擴展版本管理表中的版本號的最大值,本文檔來自技高網...
【技術保護點】
1.一種基于Postgres的空間數據版本處理方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的基于Postgres的空間數據版本處理方法,其特征在于,所述圖層數據表的主要字段包括要素標識、空間字段和屬性字段,所述擴展版本管理表的主要字段包括版本號、備注信息、操作時間和用戶ID,所述版本管理相關信息包括當前記錄的開始版本號、當前記錄的結束版本號以及與其關聯的父主鍵號和子主鍵號,所述當前記錄的開始版本號與所述擴展版本管理表中的版本號相對應,所述當前記錄的結束版本號表示當前記錄編輯保存后上傳到服務器架構時的版本號,所述父主鍵號對應當前記錄的來源的要素標識,表示當前記錄為來源的要素標識對應的記錄編輯后生成的新記錄,所述子主鍵號表示當前記錄編輯后生成新記錄的要素標識,當所述當前記錄的開始版本號與當前記錄的結束版本號相等,則說明對應的記錄已被刪除;所述本地版本管理表的主要字段為序號ID、遷出時或更新時擴展版本管理表中的版本號的最大值、表名、遷出時或更新時分支擴展表中的要素標識的最大值和遷出時間,所述差分表的主要字段與所述擴展分支表的主要字段相同。
3.根據權
4.根據權利要求2所述的基于Postgres的空間數據版本處理方法,其特征在于,所述本地版本視圖顯示所述分支擴展表與差分表中信息的集合,從差分表中獲取的記錄的條件為:差分表中的結束版本號為空或者差分表中的結束版本號大于等于Maxrev,并且差分表中的開始版本號不為空;
5.根據權利要求1所述的基于Postgres的空間數據版本處理方法,其特征在于,視圖觸發器包括與本地版本視圖對應的插入觸發器、更新觸發器、刪除觸發器。
6.根據權利要求2所述的基于Postgres的空間數據版本處理方法,其特征在于,所述沖突判斷與解決的過程具體包括:
7.根據權利要求2所述的基于Postgres的空間數據版本處理方法,其特征在于,還包括:
8.一種基于Postgres的空間數據版本處理裝置,其特征在于,包括:
9.一種電子設備,包括:
10.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,該程序被處理器執行時實現如權利要求1-7中任一所述的方法。
...【技術特征摘要】
1.一種基于postgres的空間數據版本處理方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的基于postgres的空間數據版本處理方法,其特征在于,所述圖層數據表的主要字段包括要素標識、空間字段和屬性字段,所述擴展版本管理表的主要字段包括版本號、備注信息、操作時間和用戶id,所述版本管理相關信息包括當前記錄的開始版本號、當前記錄的結束版本號以及與其關聯的父主鍵號和子主鍵號,所述當前記錄的開始版本號與所述擴展版本管理表中的版本號相對應,所述當前記錄的結束版本號表示當前記錄編輯保存后上傳到服務器架構時的版本號,所述父主鍵號對應當前記錄的來源的要素標識,表示當前記錄為來源的要素標識對應的記錄編輯后生成的新記錄,所述子主鍵號表示當前記錄編輯后生成新記錄的要素標識,當所述當前記錄的開始版本號與當前記錄的結束版本號相等,則說明對應的記錄已被刪除;所述本地版本管理表的主要字段為序號id、遷出時或更新時擴展版本管理表中的版本號的最大值、表名、遷出時或更新時分支擴展表中的要素標識的最大值和遷出時間,所述差分表的主要字段與所述擴展分支表的主要字段相同。
3.根據權利要求1所...
【專利技術屬性】
技術研發人員:劉子立,蔣世峰,姚術林,
申請(專利權)人:廈門精圖信息技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。