首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

怎样设计订单号,对客户展示更友好,也便于技术开发?

  •  
  •   guoyu4126 · 39 天前 · 2129 次点击
    这是一个创建于 39 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在的订单号设计为 6 位数字。 想重新设计一下订单号

    1、对客户展示友好 2、尽量以全数字为主

    21 回复  |  直到 2018-05-15 18:28:50 +08:00
        1
    3dwelcome   39 天前 via Android
    改成三位数字订单号,技术层面订单号加上用户的手机号当前缀,就不会冲突了。
        2
    jimzhong   39 天前
    @3dwelcome 如果客户有超过 1000 个订单就冲突了吧。建议加上年和月。
        3
    loading   39 天前 via iPhone
    旁边给二维码就行
        4
    yhxx   39 天前
    对客户展示友好是指什么?
    普通公司应该遇不到淘宝那种超出 int 上限的情况吧
        5
    redtea   39 天前
    参考淘宝,时间戳+6 位用户 ID。不过我还是没有想明白怎么防止用户 ID 尾号相同的用户在同一时间提交生成相同订单号。
        6
    EarthChild   39 天前
    @redtea #5 那就让那个人给你付款吧!
        7
    woscaizi   39 天前 via iPhone
    @redtea 淘宝订单号是单独的系统来生成的吧,这个系统有逻辑可以避免生成重复订单号。打完这句话我发现这简直是句废话。
        8
    jowuIM   39 天前
    @redtea 应该加上地域的 ID, 电话号段的分配本来就带地域的.
        9
    Raymon111111   39 天前
    "对用户友好" 有例子吗? 啥意思
        10
    FYK   39 天前
    订单号这个东西超级复杂啊。可以搜一下:
    https://www.zhihu.com/question/19805896
        11
    yangqi   39 天前
    订单号对客户友好?这本来就是个假命题,客户谁关心订单号的格式?自己开发方便安全就可以了
        12
    sujin190   39 天前
    其实时间年月日时分秒对人是很容易记的了,每个人都自然对时间自然有理解,管理上也很友好,本身就是时序的,后面加上全局计数器、随机数或者用户 id 都行,都可以在短时间多机快速生成很多订单好
    有做法也可以年月日时分秒+1 字节机器 ID+2 字节进程 ID+1 字节进程内计数器,四字节转 10 个数字,一般就可以快速生成订单号了吧
        13
    soli   39 天前
    楼上正解。
        14
    airyland   39 天前
    10 位左右的数字对用户就算友好了,加上日期并没有变得多么易读有用。对用户友好其实是方便用户复制、查看、念给电话客服,所以在排版上格式化下,四位一组就可以了,比如 2345 3446 345。另外订单界面加上复制功能。
        15
    imydou   38 天前
    @3dwelcome #1 不利于更换手机号
        16
    echoZero   38 天前 via iPhone
    从用户角度:订单号需要短 方便用户联系客服
    从运营角度:不能连续,防止别人抓取。
    从技术角度:不能重复,能包含 sharding key,易于拓展,还要容量足够大。
        17
    opengps   38 天前
    @3dwelcome 别用手机号,容易涉及隐私保护问题,如果需要关联到用户,换成用户的 uuid

    订单号设计,可以直接体现下单时间,yyMMddxxxx,x 可以是可变长度,前面订单日期固定 6 位即可,xx 递增或者随机增长打乱接口被采集可能
        18
    vencent00   38 天前
    @redtea 用种子表生成订单号
        19
    opengps   38 天前
    另外订单表单独用一个时间列做聚集索引,不建议订单号做主键,这样有利于将来表太大,分割表分区或者冷数据迁移
        20
    jjzhanhun   38 天前
    年月日+时间戳+随机数+用户 id 后 4 位
        21
    fcten   38 天前
    用户友好的意思是越短越好?那这和技术开发是互斥的,因为要保证不重复不连续一定需要足够的长度。
    可以参考 Twitter 的 snowflake 算法。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   624 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 21ms · UTC 20:34 · PVG 04:34 · LAX 13:34 · JFK 16:34
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1