目前在进行系统V2.0版本的重新规划梳理,工作涉及到订单号的设计,也特此分享一点实践经验。(文/Rancho Gao)
一、订单命名的规则
1、唯一性
订单号不重复,相信大家都懂的
2、安全性
订单号的编号不能透露公司的真实运营情况。
V1.0的订单号直接使用流水号,所以一下暴露了公司的运营情况。
这也是当初考虑不周到造成的后果。
3、不要使用大规模随机码
在生成随机码的时候会对比数据库,以防止重复。
若是网站订单上了量级的时候,比如说几十万,每生成一条数据,都要对比,可想而知会造成什么后果。
4、控制好位数
一般在10~15位为好,便于客服或者其他内部人员查询。尤其是我们这种流程周期较为长的商业模式,订单复查时常有的事情。
二、推荐的一种编码规则:
年月日时分秒+随机码(2)+流水号+随机码(2)
1、唯一性:时间的唯一性,意味着订单的唯一性。
2、安全性:随机码位数和前后都是保密的,除了内部人员,比较难猜测流水号的具体数值。
3、在同1秒钟,同一用户是不会产生2个订单编码的,所以可以防并发。
4、位数可能会在20位之内,位数比较多。
部分资料引自其他平台