【发布时间】:2019-09-22 10:21:24
【问题描述】:
我想为某个活动生成门票。我需要生成很多,我决定将票号作为 UUID。问题是如何生成一个大的 UUID 列表并且它是不同的。
我知道检查现有列表中生成的每个新 UUID 的简单方法,但这对性能不太友好。 :)
我正在使用带有 UUID v4 的 NodeJS。
谢谢!
【问题讨论】:
-
您对重复的担忧是没有根据的:stackoverflow.com/questions/1155008/how-unique-is-uuid
-
您是否考虑过自动递增的行号或按顺序分配的编号是否比唯一的随机数更适合作为工单 ID?
-
“自动递增的行号或顺序分配的编号”不太合适,因为此代码将位于票证上的二维码下方。
-
相反:不扫描二维码,是随机数、顺序分配的数字还是其他唯一的数字是不明显的(尤其是二维条码如二维码通常采用某种纠错机制)。这些数字中的任何一个最终都必须分配给某种数据库记录。
-
但是,如果您的目标是创建“不可预测”的数字,并且您的应用程序可以容忍生成重复的 124 位“随机”数字的风险(尽管可以忽略不计),那么您可以生成一个版本- 4 UUID 借助加密 RNG(node.js 拥有;查看文档)。但是,如果您将生成的工单 ID 的数量非常少(可能大约为一千),那么检查工单号的唯一性并没有什么坏处。另请参阅my article on this matter。
标签: node.js list random unique uuid