注意:我已经阅读过较早的问题,例如客户编号、订单号的最佳格式是什么?,但是我的问题更具体一点。
生成伪随机数不久就会遇到“生日问题”。例如,如果我使用 27 位字段作为我的订单号,在 15000 次输入后,冲突的机会增加到 50%。
我想知道像亚马逊这样的大型电子商务企业是否以任何其他方式生成其订单号 - 例如:
- 预先生成整个集合并从中随机选择(几百 GB 的数据库)
- 使用从特定种子编号开始的字典式“next_permutation”
- 日期、用户 ID 等参数的 MD5 或 SHA-1 哈希,截断为 14 位
- ETC
我想要的只是一个特定宽度的非重复整数(不需要非常随机,除非混淆订单总数)。关于如何实现这一点的任何想法?