[發明專利]ID的自動生成方法及裝置在審
| 申請號: | 202210316891.6 | 申請日: | 2022-03-29 |
| 公開(公告)號: | CN114676137A | 公開(公告)日: | 2022-06-28 |
| 發明(設計)人: | 馮旭勃;賀偉偉 | 申請(專利權)人: | 智道網聯科技(北京)有限公司 |
| 主分類號: | G06F16/22 | 分類號: | G06F16/22;G06F16/2458;G06F40/126 |
| 代理公司: | 北京匯鑫君達知識產權代理有限公司 11769 | 代理人: | 黃啟法 |
| 地址: | 100013 北京市東*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | id 自動 生成 方法 裝置 | ||
本申請涉及一種ID的自動生成方法及裝置。該方法包括:獲取當前項目中每個對象已分配的ID;根據接收每個對象已分配的ID的順序生成當前項目中每個對象的序列數,在相同項目內對象的序列數隨著接收對象已分配ID的順序依次遞增;獲取當前項目的時間戳,基于當前項目的時間戳和當前項目中每個對象的序列數,生成當前項目中每個對象的隨機字符串;將當前項目的時間戳、當前項目中每個對象的序列數及當前項目中每個對象的隨機字符串按照預設規則依次拼接,生成當前項目中每個對象的目標ID。本申請僅根據項目的時間戳、自生成序列和隨機數就可以生成唯一ID,在不依賴分布式網絡的情況下,保證了本發明的ID的唯一性,同時還可以解決跨機環境下的存儲問題。
技術領域
本申請涉及智能交通領域,尤其涉及一種ID的自動生成方法及裝置。
背景技術
軟件項目開發過程中會創建很多對象,例如,模型、數據等,每個對象一般都會有一個字符串名稱,可以稱為字符ID。但是,對象之間可能存在引用關系,或者,一些需要存儲到服務器數據庫中的對象,都需要一個唯一的標識來表示該對象,在對數據庫中的每條數據進行讀取、寫入或刪除等訪問動作時,通常會使用與之對應的主鍵(key)來進行操作。因此,數據庫會為每條數據分配唯一的ID作為主鍵,如果ID不唯一則可能因主鍵沖突導致數據庫操作失敗。
相關技術中,為保證ID的唯一性,多采用在分配服務群組ID的基礎上,添加數據庫增序列。采用數據庫自增序列,會造成每次執行事務都額外增加了數據庫IO消耗,使性能下降,影響了存儲性能及傳輸使用不便;同時此算法過度依賴分布式網絡,在網絡不穩定的情況下,生成ID的可靠性不足。
因此,現有本申請提供一種不依賴分布式網絡,能夠提高生成ID的穩定性的方法。
發明內容
為解決或部分解決相關技術中存在的問題,本申請提供一種不依賴分布式網絡,能夠提高生成ID的穩定性的方法。
本申請第一方面,提供一種ID的自動生成方法,包括:
獲取當前項目中每個對象已分配的ID;
根據接收每個對象已分配的ID的順序生成當前項目中每個對象的序列數,在相同項目內對象的序列數隨著接收對象已分配ID的順序依次遞增;
獲取當前項目的時間戳,基于當前項目的時間戳和當前項目中每個對象的序列數,生成當前項目中每個對象的隨機字符串;
將當前項目的時間戳、當前項目中每個對象的序列數及當前項目中每個對象的隨機字符串按照預設規則依次拼接,生成當前項目中每個對象的目標ID。
可選地,獲取當前項目的時間戳之后,包括:
將當前項目的時間戳轉換為16進制字符串,得到當前項目的時間戳字符串。
可選地,序列數的位數范圍至少包括第一預設范圍和第二預設范圍,第二預設范圍的位數比第一預設范圍的位數至少多一位,根據接收每個對象已分配的ID的順序生成當前項目中每個對象的序列數,包括:
在第一預設范圍內依次生成每個對象的序列數,其中,當前對象的序列數大于前一對象的序列數;
在當前對象的序列數超出第一預設范圍的情況下,在第二預設范圍內生成對象的序列數。
可選地,方法還包括:將每個對象的序列數轉換為16進制字符串,得到每個對象的序列數字符串。
可選地,基于當前項目的時間戳和當前項目中每個對象的序列數,生成當前項目中每個對象的隨機字符串,包括:
確定創建目標ID的目標位數;
根據當前項目的時間戳字符串的位數、每個對象的序列數字符串的位數、以及目標位數,確定每個對象的隨機字符串的位數;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于智道網聯科技(北京)有限公司,未經智道網聯科技(北京)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210316891.6/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:全球多制式合一智能系統電視
- 下一篇:一種高速永磁電機轉子溫度的實時監測方法





