Rails 请教一下关于生成订单号

evan · 2012年09月17日 · 最后由 evan 回复于 2012年09月19日 · 7893 次阅读

淘宝 订单编号:220883088289889 京东 订单编号:319477253

uuid 这个 gem 生成的混杂的编号显然不太一样,我也想生成纯数字的,难道直接用 id 吗?

一般来说不要直接用 id,你想你的竞争对手清楚的知道你每天收了多少个订单么? 订单号可以包含更多的信息,比如第几位到第几位表示订单类型,第几位到第几位表示收货的省份或者是表示是否为促销订单等等。

#1 楼 @ywencn 用 id 好啊 按你这个说法还能欺骗竞争对手呢 偷偷把 id 加 1w

#2 楼 @hooopo 或者至少 id 前面凑点东西吧,人家跑来一买东西,一看,尼玛,订单号还是个位数,估计都不敢付款啊

trades:[
{_type: 'taobao', _id: 220883088289889}, 
{_type: '360buy', _id: 319477253}, 
]

uuid 主要是太长了 不好看

#4 楼 @hooopo 光从一个数值开始还是不好,仔细研究还是能分析出来,得不连贯的

#7 楼 @huacnlee 隔一段时间设置一个起始值就不连贯了

我就不会花心思在这些地方,顶多前置个时间戳

SecureRandom.uuid.gsub(/-/, '').to_i(16)

类型 + 日期 + 番号 (建议订单号有点意义 比如一眼看出来是什么类型的 哪天的 )

京东 订单编号:319477253 这个应该也不是自然 id 吧 才 3 亿多单子 京东一年也不止这么多吧

需要 登录 后方可回复, 如果你还没有账号请 注册新账号