zoukankan      html  css  js  c++  java
  • 订单号设计规则

    最近公司由于业务的需要,设计生成订单号规则(定制版)。在网上查看了一些资料,在这里总结一些自己的心得。

    1. 基本需求:正确性、唯一性、安全性、稳定性
    2. 高级需求:检索性能、其他性能方面
    3. 定制化需求:语义相关、业务相关

    订单号的生成规则:

    •  唯一性(不重复):保证编码id唯一;
    • 安全性:在编码中不要加入任何和公司运营的数据;
    •  易读性:不大规模使用随机码,造成编码位数过长,不建议有字母编码规则,最好是纯数字编码;
    • 可扩展性:便于查询,业务升级等;
    • 防止并发:主要针对编码中有时间的设定,分布式机器的时间不统一。

    编码规则一般位数控制在10-15位,常见的编码规则:

    • 时间戳+业务类型+下单平台+随机码(或自增码,自增码每天可清零)+支付渠道+用户ID(建议);
    • 年月日时分秒+用户ID;
    • 年月日时分秒微秒+随机码(2)+流水号+随机码(3);
    • 利用数据库主键值产生一个自增长的订单号(订单号即数据表的主键)
    • 日期+自增长数字的订单号(比如:2012040110235662)
    • 产生随机的订单号(65865325365966)
    • 字母+数字字符串式,字母有包含特别意义,C02356652
    • Twitter的雪花算法,php第三方扩展库(php-snowflake):https://github.com/zh-ang/php-snowflake(推荐)
  • 相关阅读:
    死信队列消息原因排查
    MQ中间件死信队列深度不断增加问题解决案例
    DB2 57016报错的解决办法(表状态不正常,导致表无法操作)
    万门大学--童哲
    eclipse jvm配置
    weblogic threadpool has stuck threads
    8-10 ObserveableCommand演示
    8-9 四种执行方式区别讲解
    8-8 toObserve两种形态演示
    8-7 Observe两种形态演示
  • 原文地址:https://www.cnblogs.com/anly95/p/10516673.html
Copyright © 2011-2022 走看看