做后端開(kāi)發(fā)數(shù)據(jù)表的主鍵生成方式項(xiàng)目前期可能覺(jué)的無(wú)所謂姚垃,有用遞增的盼忌、UUID的、中心服務(wù)生成主鍵的看成,這些方式各有利弊跨嘉。下面記錄下最近項(xiàng)目使用的一種唯一主鍵生成方式。
首先用戶(hù)ID是關(guān)鍵梦重,也是在其它表中的主鍵生成需要來(lái)標(biāo)識(shí)的亮瓷。用戶(hù)ID的我直接是采用UUID.v4的嘱支,采用簡(jiǎn)單的方式實(shí)現(xiàn)一個(gè)全局唯一的。
接下來(lái)其它的表中的主鍵使用 "精確時(shí)間+用戶(hù)ID后幾位+隨機(jī)字符串+表標(biāo)識(shí)前綴"
如訂單表:
201704220833543 + UUID.v4().substring(-6) + RandomStr() + 'o'
精確時(shí)間打毫秒 + 用戶(hù)ID后6位 + 隨機(jī)字符串 + 訂單表order前綴標(biāo)識(shí)'o'
優(yōu)點(diǎn):
- 基本可以保證ID唯一沛膳,因?yàn)樵诤撩爰?jí)別單個(gè)用戶(hù)在單個(gè)表中生成的記錄數(shù)有限,隨機(jī)字符串長(zhǎng)度也弄到6位以上的話很難重復(fù)汛聚。
- 省去再添加一個(gè)時(shí)間索引锹安,直接按照表ID排序即是按時(shí)間排序
以上就是我最近項(xiàng)目的唯一ID生成方式,可能有些東西沒(méi)考慮到,歡迎來(lái)懟八毯,一起提高成長(zhǎng)搓侄。