订单规则id怎么生成?
最近在考虑订单id怎么生成。
全数字但是不要太长,同时orderId需要唯一。
简单的id自增长肯定不行,不仅位数不够,还会暴露业务量。
最近我考虑:
简单的时间戳+随机数+流水号计数器。
不知道大家有什么好的想法。
詛咒的雛人偶
9 years, 8 months ago
Answers
主要是看你的业务量了。
一般是几种方式:
1.用户id+年月日时分秒+随机数+流水号。随机数和流水号的位数按照业务量来设定,不过在秒级的时间内,两个4足够了。如果你的业务量小的话,随机数和流水号都不用。
如:0424 201505291832 0001 2455
2.用户id + md5(用户id+时间戳)。不过使用md5()进行消息摘要可能会出现重复,虽然36^32看起来很大,但是不能保证摘要后的数据不重复。或者可以在md5()的基础上再进行改造。
如:0424 + md5(0424 201505291832),(中间没有空格)生成的摘要是:0424e13c2fe2f569da04b2aa411980dbfa28
八雲チェン
answered 9 years, 8 months ago