2017-10-12 701 views
-1

使用UUID在具有唯一约束的列中生成随机值就足够了吗?在MySql中为主键生成随机值

或者我们应该附加类似当前时间戳到UUID。

或者是否有更好的方法来为sql列生成随机但唯一的值。

+0

在99.9999%的所有用例中,UUID就足够了。 (甚至更多9s) – luk2302

+1

_“...为主键...”_是不是自动增量足够? –

+1

我希望他们是随机的。用户不应该能够猜到其他用户的ID。 –

回答

1

以任何语言生成随机数是一种用词不当。这些数字是伪随机的。意思不完全是100%随机的。

也考虑到在1-5范围内产生随机数的情况。你可能会得到重复生成相同的数字。或者,如果您生成超过5个数字,则绝对会有重复。

如果字段只从一个地方更新,时间戳往往是一个很好的UUID。但是,你也必须担心诸如确保格式正确的事情。特别是在语言/技术之间切换时。

用户ID为什么不自动增加一列的值?在某处开始列并从那里增加。我会在列表的开头留下一些数字,这样如果您需要它们进行测试/管理,那么您可以尽早找到空的数字。