共16条回复
楼长
·
tinyfool
回复于 2015年09月29日
我都快无语了......
3楼
·
zhiyuan
回复于 2015年09月29日
根据日期加几位的数字序列不行吗
4楼
·
rothcold
回复于 2015年09月29日
日期后再跟一个10位自增数字呗(例如20150920xxxxxxxxxx),或者日期时间之后再跟个6位(例如201509201357xxxxxx)
8楼
·
caipanjin
回复于 2015年09月29日
不建议用自增数字,容易被穷举。建议日期时间加随机数。
9楼
·
akwei
回复于 2015年09月29日
订单号的生成,看你如何考虑了。
简单的方式: orderId就是一个唯一识别,如果没有特别的含义。那么就是自增生成就行。至于说被猜到,那就看对业务的影响。是否允许任何人根据orderId查询订单,通过业务来判断。
复杂的方式: 由于系统订单数据越来越多,那么最终你需要做数据库的分布式存储。这样的话,订单号就可以有很多的含义在里面了。 例如:(如果使用关系数据库存储)分布式后,数据分表分库,那么通过订单号能找到订单的准确位置,这就很重要了。单纯的自增可能就不是很好的方案了。因此可以这样考虑: orderId=[yyyyMMDDhhmmss][商户id后4位][自增序列6位]
如果主要是通过商户分区,那么就能根据商户的id信息来找到数据的位置。如果数据越来越多,大量的历史数据需要迁移,例如3个月前的所有订单可以放到备份库中,那么就可以根据时间来定位数据的位置,因此联合起来就能知道orderId能在哪里查到数据
本帖有16个回复,因为您没有注册或者登录本站,所以只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。