最近在考虑订单id怎么生成。
全数字但是不要太长,同时orderId需要唯一。
简单的id自增长肯定不行,不仅位数不够,还会暴露业务量。
最近我考虑:
简单的时间戳+随机数+流水号计数器。
不知道大家有什么好的想法。
迷茫2017-04-17 12:59:33
主要是看你的業務量了。
一般是幾種方式:
1.用戶id+年月日時分秒+隨機數+流水號。隨機數和流水號的位數是依照業務量來設定,不過在秒級的時間內,兩個4就足夠了。如果你的業務量小的話,隨機數和流水號都不用。
如:0424 201505291832 0001 2455
2.用戶id + md5(用戶id+時間戳記)。不過使用md5()進行訊息摘要可能會重複,雖然36^32看起來很大,但無法保證摘要後的資料不會重複。或可在md5()的基礎上再進行改造。
如:0424 + md5(0424 201505291832),(中間沒有空格)產生的摘要是:0424e13c2fe2f569da04b2aa411980dbfa28
阿神2017-04-17 12:59:33
用戶id+簡單的時間戳(精確到小時)+(4位數的)流水號計數器比如現在是2016年06月10日6時然後加上4位數的流水號計數(身份證上就4位,應該夠了,隨機數什麼的個人覺得用處不大),寫成0424-2016-06-10-06-0001。