新四季網

識別碼生成方法和系統的製作方法

2023-12-01 03:12:31 1

專利名稱:識別碼生成方法和系統的製作方法
技術領域:
本發明涉及識別碼處理技術,尤其涉及一種識別碼生成方法和系統。
背景技術:
在基於關係型資料庫技術的軟體系統中,通常,每個數據表需要用一個ID來唯一 的標識某行記錄,比如ERP系統中每個生產訂單都會有一個唯一的標識。目前市場上的軟體產品中主要存在兩大類產生系統內唯一 ID的方法(1)採用 UUID(Universally Unique Identifier,通用唯一識別碼)的方式產生 一個全球唯一的識別碼。該方法的優點是已經有公開的算法,很多高級的開發語言本身已 經提供了相應的工具包,能夠保證在分布式環境中產生的ID具有唯一性,運行效率也比較 高。缺點是UUID由36個字符組成,長度過大,佔用存儲空間較多,在大型的資料庫系統中 會影響數據存取的效率,對於WEB系統來講,網絡上傳遞大量的此類ID所產生的流量也較 大,進而影響到網站響應的速度。(2)應用程式根據軟體運行環境的特定信息,運用一定的算法,自己產生一個依賴 於特定運行環境的唯一識別碼。該方法的優點是產生的ID長度可控,缺點是很難保證產生 的ID在整個系統尤其是分布式系統中唯一性,運行時通常需要考慮一些相關信息,往往運 行效率也較低。因此,需要一種識別碼生成方式,既能夠保證在分布式系統產生的ID具有唯一 性,又能夠有效的降低ID所佔的字節數,節約存儲空間,保證數據存儲的效率,不至於增加 太多的網絡流量。

發明內容
鑑於以上,本發明的技術方案所要解決的技術問題在於,提供一種識別碼生成方 法和系統,既能夠保證在分布式系統產生的ID具有唯一性,又能夠有效的降低ID所佔的字 節數,節約存儲空間,保證數據存儲的效率,不至於增加太多的網絡流量。本發明提供了一種識別碼生成方法,包括步驟S102,根據通用唯一識別碼通用 算法生成第一長度的第一字符串;步驟S 104,去除所述第一字符串中的連結符,將所述第 一長度的所述第一字符串變為第二長度的第二字符串;步驟S106,將所述第二長度的所述 第二字符串中的字符進行分組、壓縮,並將壓縮後的字符進行拼接,生成第三長度的第三字 符串,其中,所述第三字符串為識別碼。通過該技術方案,可以生成既有唯一性又節約存儲 空間的識別碼,保證數據存儲的效率。在上述技術方案中,優選地,在所述步驟S102中,所述第一長度為36個字符。在上述技術方案中,優選地,在所述步驟S104中,所述連結符為「_」。 在上述技術方案中,優選地,所述第二長度為32個字符,第三長度為22個字符,所 述步驟S106具體為步驟S1062,將所述32個字符分成11組,其中,第1組為2個字符,其 餘10組分別為3個字符;步驟S1064,將第2組至第11組的字符串分別進行壓縮,使用壓
4縮算法將每組由3個字符壓縮為2個字符;步驟S1066,將所述第1組的2個字符與所述第 2組至第11組的壓縮後的字符進行拼接,生成長度為22個字符的第三字符串。通過該技術 方案,可以減小字符串的長度,節約了存儲空間。在上述技術方案中,優選地,所述壓縮算法具體為將3位16進位的字符串轉化為 2位64進位的字符串,所述步驟S1064具體為使用64個字符來描述64進位數值,其中所 述 64 個字符包括#$0123456789ABCDEFGHIJKLMN0PQRSTUVWXYZabcdefghi jklmnopqrstuvw xyz,所述64個字符按照ASCII碼的順序進行排列;將16進位的三個字符傳化成10進位的 數字,轉化後的數值範圍為0至163 ;根據上述10進位的數字,產生長度為2個字符的64進 制的字符串。本發明還提供了一種識別碼生成系統,包括第一字符串生成模塊,根據通用唯一 識別碼通用算法生成第一長度的第一字符串;第二字符串生成模塊,去除所述第一字符串 中的連結符,將所述第一長度的所述第一字符串變為第二長度的第二字符串;第三字符串 生成模塊,將所述第二長度的所述第二字符串中的字符進行分組、壓縮,並將壓縮後的字符 進行拼接,生成第三長度的第三字符串,其中,所述第三字符串為識別碼。通過該技術方案, 可以生成既有唯一性又節約存儲空間的識別碼,保證數據存儲的效率。在上述技術方案中,優選地,所述第一長度為36個字符,所述連結符為「_」;所述 第二長度為32個字符,第三長度為22個字符。在上述技術方案中,優選地,第三字符串生成模塊包括分組模塊,將所述32個字 符分成11組,其中,第1組為2個字符,其餘10組分別為3個字符;壓縮模塊,將第2組至 第11組的字符串分別進行壓縮,使用壓縮算法將每組由3個字符壓縮為2個字符;拼接模 塊,將所述第1組的2個字符與所述第2組至第11組的壓縮後的字符進行拼接,生成長度 為22個字符的第三字符串。通過該技術方案,可以減小字符串的長度,節約了存儲空間。在上述技術方案中,優選地,所述壓縮算法具體為將3位16進位的字符串轉化為 2位64進位的字符串。通過上述技術方案,可以實現一種識別碼生成方法和系統,既能夠保證在分布式 系統產生的ID具有唯一性,又能夠有效的降低ID所佔的字節數,節約存儲空間,保證數據 存儲的效率,不至於增加太多的網絡流量。


圖1是根據本發明的一個實施例的識別碼生成方法的流程圖;圖2是根據本發明的又一實施例的識別碼生成系統的框圖;以及圖3是根據本發明的又一實施例的識別碼生成方法的處理流程圖。
具體實施例方式為了能夠更清楚地理解本發明的上述目的、特徵和優點,下面結合附圖和具體實 施方式對本發明進行進一步的詳細描述。在下面的描述中闡述了很多具體細節以便於充分理解本發明,但是,本發明還可 以採用其他不同於在此描述的其他方式來實施,因此,本發明並不限於下面公開的具體實 施例的限制。
圖1是根據本發明的一個實施例的識別碼生成方法的流程圖。如圖1所示,根據 本發明的實施例的識別碼生成方法包括步驟S102,根據通用唯一識別碼通用算法生成第 一長度的第一字符串;步驟S104,去除所述第一字符串中的連結符,將所述第一長度的所 述第一字符串變為第二長度的第二字符串;步驟S106,將所述第二長度的所述第二字符串 中的字符進行分組、壓縮,並將壓縮後的字符進行拼接,生成第三長度的第三字符串,其中, 所述第三字符串為識別碼。通過這樣的技術方案,可以生成既有唯一性又節約存儲空間的 識別碼,保證數據存儲的效率。在上述技術方案中,在所述步驟S102中,所述第一長度為36個字符。在上述技術方案中,在所述步驟S104中,所述連結符為「_」。在上述技術方案中,所述第二長度為32個字符,第三長度為22個字符,所述步驟 S106具體為步驟S1062,將所述32個字符分成11組,其中,第1組為2個字符,其餘10組 分別為3個字符;步驟S1064,將第2組至第11組的字符串分別進行壓縮,使用壓縮算法將 每組由3個字符壓縮為2個字符;步驟S1066,將所述第1組的2個字符與所述第2組至第 11組的壓縮後的字符進行拼接,生成長度為22個字符的第三字符串。這樣,就可以減小字 符串的長度,節約了存儲空間。在上述技術方案中,所述壓縮算法具體為將3位16進位的字符串轉化為2位64 進位的字符串,所述步驟S1064具體為使用64個字符來描述64進位數值,其中所述64個 字符包括#$0123456789ABCDEFGHIJKLMN0PQRSTUVWXYZabcdefghijklmnopqrstuvwxyz,所 述64個字符按照ASCII碼的順序進行排列;將16進位的三個字符傳化成10進位的數字, 轉化後的數值範圍為0至163 ;根據上述10進位的數字,產生長度為2個字符的64進位的 字符串。通過上述技術方案,可以實現一種識別碼生成系統,既能夠保證在分布式系統產 生的ID具有唯一性,又能夠有效的降低ID所佔的字節數,節約存儲空間,保證數據存儲的 效率,不至於增加太多的網絡流量。圖2示出了根據本發明的又一實施例的識別碼生成系統的框圖。如圖2所示,根 據本發明的實施例的識別碼生成系統200包括第一字符串生成模塊202,根據通用唯一識 別碼通用算法生成第一長度的第一字符串;第二字符串生成模塊204,去除所述第一字符 串中的連結符,將所述第一長度的所述第一字符串變為第二長度的第二字符串;第三字符 串生成模塊206,將所述第二長度的所述第二字符串中的字符進行分組、壓縮,並將壓縮後 的字符進行拼接,生成第三長度的第三字符串,其中,所述第三字符串為識別碼。通過這樣 的技術方案,可以生成既有唯一性又節約存儲空間的識別碼,保證數據存儲的效率。在上述技術方案中,所述第一長度為36個字符,所述連結符為「_」;所述第二長度 為32個字符,第三長度為22個字符。 在上述技術方案中,第三字符串生成模塊206包括分組模塊,將所述32個字符分 成11組,其中,第1組為2個字符,其餘10組分別為3個字符;壓縮模塊,將第2組至第11 組的字符串分別進行壓縮,使用壓縮算法將每組由3個字符壓縮為2個字符;拼接模塊,將 所述第1組的2個字符與所述第2組至第11組的壓縮後的字符進行拼接,生成長度為22 個字符的第三字符串。這樣,就可以減小字符串的長度,節約了存儲空間。
在上述技術方案中,所述壓縮算法具體為將3位16進位的字符串轉化為2位64
6進位的字符串。通過上述技術方案,可以實現一種識別碼生成系統,既能夠保證在分布式系統產 生的ID具有唯一性,又能夠有效的降低ID所佔的字節數,節約存儲空間,保證數據存儲的 效率,不至於增加太多的網絡流量。圖3是根據本發明的又一實施例的識別碼生成方法的處理流程圖。首先介紹一下通用唯一識別碼的相關信息,通用唯一識別碼(UniversalIy Unique Identifier, UUID)是一個軟體建構的標準,亦為自由軟體基金會(Open Software Foundation, 0SF)的組織在分布式計算環境(Distributed Computing Environment, DCE) 領域的一部份。UUID能夠保證對在同一時空中的所有機器都是唯一的,它主要由三部分構成(1)當前的日期和時間;(2)時鐘序列;(3)全局唯一的IEEE機器識別號。UUID 是一個包含 36 個字符的字符串,格式為 χχχχχχχχ-χχχχ-χχχχ-χχχχχχ-χχχχχ XXXXX (8-4-4-4-12),其中每個χ是0-9或a-f範圍內的一個十六進位的數字。本實施例的識別碼生成方法基於UUID技術,以保證分布式系統中產生的ID具有 唯一性。為了降低ID的長度,本實施例的識別碼生成方法提供一種壓縮的方法,使長度為 36個字符的UUID轉化為等價的22個字符的ID。下面詳細描述本發明的實施例的識別碼生成方法的流程,如圖3所示在步驟S302 根據UUID通用算法產生長度為36個字符的字符串A ;在步驟S304 去掉字符串A中固定位置的4個連結符「_」,使字符串A的長度變為 32個字符;在步驟S306 把字符串A中的32個字符分成11組,其中第一組為2個字符,其餘 10組為3個字符;在步驟S308 把第二組到第十一組的字符串分別進行壓縮,每組由3個字符壓縮 為2個字符;在步驟S310 把第一組的2個字符和第二到第11組的壓縮後的字符進行拼接,產 生長度為22個字符的ID字符串。其中,步驟S308的壓縮算法主要是把3位16進位的字符串轉化為2位64進位的 字符串,轉化原理基於下面的公式16~3 = 4096 = 64~2。步驟S304的具體壓縮算法為(1)首先用64個字符來描述64進位數值,這64個字符為「#$0123456789ABCDEre HIJKLMNOPQRSTUVWXYZabcdefghizklmnopqrstuvwxyz」,這 64 個字符按照 ASCII 碼的順序進 行排列,以保證產生的ID排序結果跟UUID —致;(2)把16進位的三個字符轉化為10進位的數字,轉化後的數值範圍是0 16~3, 即0 4096。(3)根據第(2)步產生的數字,產生長度為2個字符的64進位的字符串。下面通過一個例子來說明這個算法的具體實現過程步驟1 :JAVA語言的JDK1. 5版本提供了一個通用的產生UUID的工具類,我們通過這個方法java. util. UUID. randomUUID . toString 來產生一個ID字符串,假如生成的 ID 為a3797f94-4428-4a4f-b9f3-290c3dc05d7e ;步驟2 將第一步產生的字符串去掉「-」,產生中間結果字符串a3797f9444284a4 fb9f3290c3dc05d7e ;步驟3 將第二步產生的字符串分成十一組,分組結果為
權利要求
一種識別碼生成方法,其特徵在於,包括步驟S102,根據通用唯一識別碼通用算法生成第一長度的第一字符串;步驟S104,去除所述第一字符串中的連結符,將所述第一長度的所述第一字符串變為第二長度的第二字符串;步驟S106,將所述第二長度的所述第二字符串中的字符進行分組、壓縮,並將壓縮後的字符進行拼接,生成第三長度的第三字符串,其中,所述第三字符串為識別碼。
2.根據權利要求1所述的識別碼生成方法,其特徵在於,在所述步驟S102中,所述第一 長度為36個字符。
3.根據權利要求2所述的識別碼生成方法,其特徵在於,在所述步驟S104中,所述連結 符為「_」。
4.根據權利要求3所述的識別碼生成方法,其特徵在於,所述第二長度為32個字符,第 三長度為22個字符,所述步驟S106具體為步驟S1062,將所述32個字符分成11組,其中,第1組為2個字符,其餘10組分別為3 個字符;步驟S1064,將第2組至第11組的字符串分別進行壓縮,使用壓縮算法將每組由3個字 符壓縮為2個字符;步驟S1066,將所述第1組的2個字符與所述第2組至第11組的壓縮後的字符進行拼 接,生成長度為22個字符的第三字符串。
5.根據權利要求4所述的識別碼生成方法,其特徵在於,所述壓縮算法具體為將3位 16進位的字符串轉化為2位64進位的字符串,所述步驟S1064具體為使用64個字符來描述64進位數值,其中所述64個字符包括#$0123456789ABCDEFGH IJKLMNOPQRSTUVWXYZabcdefghi jklmnopqrstuvwxyz,所述 64 個字符按照 ASCII 碼的順序進 行排列;將16進位的三個字符傳化成10進位的數字,轉化後的數值範圍為0至163 ;根據上述10進位的數字,產生長度為2個字符的64進位的字符串。
6.一種識別碼生成系統,其特徵在於,包括第一字符串生成模塊,根據通用唯一識別碼通用算法生成第一長度的第一字符串;第二字符串生成模塊,去除所述第一字符串中的連結符,將所述第一長度的所述第一 字符串變為第二長度的第二字符串;第三字符串生成模塊,將所述第二長度的所述第二字符串中的字符進行分組、壓縮,並 將壓縮後的字符進行拼接,生成第三長度的第三字符串,其中,所述第三字符串為識別碼。
7.根據權利要求6所述的識別碼生成系統,其特徵在於,所述第一長度為36個字符,所 述連結符為「_」 ;所述第二長度為32個字符,第三長度為22個字符。
8.根據權利要求7所述的識別碼生成系統,其特徵在於,第三字符串生成模塊包括分組模塊,將所述32個字符分成11組,其中,第1組為2個字符,其餘10組分別為3個字符;壓縮模塊,將第2組至第11組的字符串分別進行壓縮,使用壓縮算法將每組由3個字 符壓縮為2個字符;拼接模塊,將所述第1組的2個字符與所述第2組至第11組的壓縮後的字符進行拼接,生成長度為22個字符的第三字符串。
9.根據權利要求8所述的識別碼生成系統,其特徵在於,所述壓縮算法具體為將3位 16進位的字符串轉化為2位64進位的字符串。
全文摘要
本發明提出了一種識別碼生成方法,包括步驟S102,根據通用唯一識別碼通用算法生成第一長度的第一字符串;步驟S104,去除所述第一字符串中的連結符,將所述第一長度的所述第一字符串變為第二長度的第二字符串;步驟S106,將所述第二長度的所述第二字符串中的字符進行分組、壓縮,並將壓縮後的字符進行拼接,生成第三長度的第三字符串,其中,所述第三字符串為識別碼。本發明還提出了一種識別碼生成系統。根據本發明的技術方案,可以實現一種識別碼生成方法和系統,既能夠保證在分布式系統產生的識別碼具有唯一性,又能夠有效的降低識別碼所佔的字節數,節約存儲空間,保證數據存儲的效率,不至於增加太多的網絡流量。
文檔編號G06F17/30GK101976241SQ201010291998
公開日2011年2月16日 申請日期2010年9月26日 優先權日2010年9月26日
發明者王雲波 申請人:用友軟體股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀