现在在做一个手机回收的项目,boss叫我设计一个订单号,订单号要求唯一。
我冥思苦想,然后查阅了其他大网站的生成方法,boss给我的要求是10位,好吧,这个重复性超级高。
我是这样设计的:用户ID后4位+日期(月日)+随机2位数
感觉这样的重复性还是挺高的,假设有10w个用户,那么前面4位重复的就有10个吧,假设他们在同一天下单,那么就要看后面的随机数了,后面还是会有重复的可能性的,所以这样的重复概率挺高的。但是这是个初创网站,用户一开始没那么多,还有为了简单清楚的表达日期,所以只能这样选了。
其实我还有其他的方法,只是感觉这样有点麻烦,就是把每天下的单存入到一个专门的数据库里面,然后生成一个自动增长的id,然后根据把随机数替换成id,这样就能确保后面的不会重复了,但是这样的高并发太差了,还要连接数据库,所以我放弃了。