皮蛋是好叔叔 2018-02-05 15:45:17 240次浏览 4条回复 0 0 0

date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);

我目前用的是这个,也是在网上找的,目前没有出现订单号重复的问题,我是担心它不够强壮。用户日渐增多,想咨询一下更好的生成订单的方式,并且平稳过渡过去,希望社区的大神多多给点意见。

希望能找到我想要的答案。

  • 回复于 2018-02-07 12:16 举报

    加个唯一索引呗。。。,或者添加时查一下有没有这个订单号。另外uniqid似乎可以添加一个后缀的,你可以在上面放上用户id之类的作为后缀,减少不同用户相同订单号的可能性。。。

    1 条回复
    回复于 2018-02-07 13:21 回复

    我想过用uid来解决这个问题,后来我想的是,在uniqid里面加上后缀的话,生成的长度会不会发生变化,如果发生了变化,截取一段相同的长度会不会又会出现重复的问题,后来就想到了uid用“0”补齐6位数来作为那个uid,不知道可行不可行,还没尝试

  • 回复于 2018-02-08 10:31 举报

    商户,日期,商品id,随机数等构造,基本不会重复而且有规律~

  • 回复于 2018-02-10 14:45 举报

    欢迎加入php高级技术群711059906

  • 回复于 5小时前 举报

    百度 Snowflake算法。

您需要登录后才可以回复。登录 | 立即注册