淺談UUID主鍵

       前段時間經理讓使用UUID設置爲主鍵,UUID可以自動生成一個36字符組成的字符串,UUID是由10個阿拉伯數字加上26個字母組成,8-4-4-4-12的形式組成,例如:4c47cf4a-a55a-4fce-8cd9-024a790714b010。由此可見UUID會產生無數種的組合,不用擔心會產生重複。

       產生UUID的方法也很簡單:

String uuid=UUID.randomUUID().toString();

 

        那使用UUID自動生成主鍵有什麼好處呢?平時常用到自動生成主鍵的方式就是序列,在Oracle中寫一個序列,將觸發器寫在Oracle中或者寫在Java代碼中,這樣就有一個問題,當需要遷移數據庫的時候,容易將序列遺忘使得程序無法運行。

       有些人會選擇複合主鍵,或者用業務的某個信息作爲主鍵。早期的數據庫設計,大多都是用業務信息做主鍵,在實踐中吃了很多虧後,大家更認同用業務無關的字段來做主鍵。比如用訂單編號來做主鍵,開始大家覺得訂單編號應該是唯一的編號。隨着業務的變化,客戶在使用中提出,訂單可以作廢,但是該記錄不能刪除,而且需要新建一個具有相同訂單編號的訂單,麻煩來了。

       綜上所述,用UUID作爲主鍵有他的優越性:

1、操作產生簡單;

2、維護簡單;

3、不會產生重複值;

4、使得主鍵與業務分離開來。

      


 

 

發佈了38 篇原創文章 · 獲贊 119 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章