【发布时间】:2019-10-09 19:01:41
【问题描述】:
我正在寻找一种有效的方法来生成包含 7 个字符(字母、数字、特殊字符)的 500 万个唯一代码。
基本上,我的想法是生成一个具有唯一约束的表。然后生成一个代码,将它插入到数据库中,看看它是否被“接受”(意思是一个新代码),直到我们有 500 万个唯一代码。
另外,他们的想法是生成一个包含 500 万个唯一代码的数组,然后将它们立即插入数据库,以查看有多少代码进入数据库(是唯一的)。
第三种选择是创建一个代码,检查它是否已经存在,如果不将它插入到数据库中。
我现在的问题是我应该使用什么方法 - 我可能会监督一个问题。还是有更好的办法?
非常感谢!
【问题讨论】:
-
你可以使用 uuid - en.wikipedia.org/wiki/Universally_unique_identifier。见碰撞块。并将其用作数据库中的唯一键
-
@myxaxa UUID 不是 7 位数字……
-
代码必须满足哪些先决条件?因为如果没有,只需使用 0000001 - 5000000。
-
其他解决方案:在插入之前按 1000 或 10000 或类似的方式创建和检查您的代码。将它们一一插入将花费数据库的时间。创建 500 万个需要一些内存,如果它在结束前崩溃,您将不得不重新启动所有作业。编程是妥协的结果。
-
@DoktorOSwaldo - 我们想使用数字、字母、特殊字符;大写和小写。
标签: php