San*_*eep 6 random uuid amazon guid e-commerce
注意:我已经阅读了一些较旧的问题,例如客户编号、订单编号的最佳格式是什么?,但是我的问题更具体一点。
生成伪随机数不久就会遇到“生日问题”。例如,如果我使用 27 位字段作为我的订单号,则在 15000 次输入后,冲突的几率增加到 50%。
我想知道像亚马逊这样的大型电子商务企业是否以任何其他方式生成订单号 - 例如:
我想要的只是一个一定宽度的非重复整数(不需要非常随机,除了混淆订单总数)。关于如何实现这一点的任何想法?
小智 5
建议从相反格式的日期开始,然后从 1 开始,后跟校验(或随机)数字。如果您每天的订单量可能永远不会超过 100 个,则需要添加两位数字加上一个支票/随机数字。
\n\n年份只需包含最后两位数字,可能只包含最后一位数字,具体取决于您保留订单记录的时间:7 年左右通常就足够了,这意味着 2009 年(以 9 开头)的记录可能会在 2018 年期间删除准备在 2019 年再次使用订单号。您可以使用 mmdd 来表示接下来的 4 位数字,或者简单地对一年中的天数进行编号并仅使用 3 位数字 - 这取决于您希望该数字的人性化程度。也可以省略月份中的某一天,并在每个月初(而不是每天)重新开始序列号。
\n\n今天是 2017 年 11 月 2 日,假设今天的订单号为 16,您的订单号为 71102168(其中 8 是校验位或随机位)。如果您可能有多达但不超过一千位,则需要一个额外的数字,例如:711020168。为了避免限制自己的位数,您可能更喜欢使用连字符:71102-168 \xe2 \x80\xa6\xc2\xa0 如果您愿意,您可以在校验/随机数字之前添加另一个连字符:71102-16-8。
\n\n如果您有多个处理订单的区域,您可能希望在日期开始或之后添加一个仓库编号,以便您可以使用每个仓库的序列号 - 例如仓库 5 可能是:5-71102-168, 71102-5-168 或 711025168。同样,如果您不使用连字符,则需要评估是否需要最多十个、一百个或一千个(等)个可能的仓库编号。我希望这有帮助!
\n