生成UUID的最佳实践是什么?使用PHP还是MySql?

11

我不是专家,但如果我使用UUIDGUID,那是因为我需要在与数据库交互之前获得一个ID的情况下。如果我需要在与数据库交互后获得ID,我从来没有使用简单的自增ID遇到过问题。这是我的做法,当然不是最好的。 - Christian Gollhardt
@ChristianGollhardt 有时候我也觉得坚持原则是最好的方式。 - terry
3个回答

3
如果您希望从不同的应用程序中插入行,则通过数据库生成UID是最安全的方法,因为该实现是集中的,并且在应用程序之间当然不会更改。
比方说,如果你决定在另一种语言中创建API。那么你就需要在那种语言中实现相同的生成器。这种其它语言实现功能的方式可能有所不同,从而导致重复的键。
如果您只打算从PHP在自己的服务器上插入行,则无论您在应用程序中还是在数据库中生成UID都没有关系。
安全并不总是正确的。或者说不切实际。权衡您计划使用的优缺点,然后再做决定。

0

你可以尝试一个非常好的PHP类纯PHP UUID生成器

  • 克隆存储库(或将UUID.php类复制粘贴到您的php文件中..)
  • 直接使用静态方法使用该类

示例:

UUID::v5('1546058f-5a25-4334-85ae-e68f2a44bbaf', 'SomeRandomString');


使用UUID::v4()生成您的初始命名空间UUID。 - David K-J
1
@Jacky Attias,我没有使用那个,而是使用了这个 https://github.com/ramsey/uuid,它与那个有些相似,并且测试结果良好。但问题仍然没有得到解答,为什么要在 PHP 中使用而不是在 MySQL 中或者反过来。 - terry

0

如果使用本地数据库UUID函数,可能会在数据库复制时出现问题。同时,我建议确认任何预先编写的UUID生成器都经过测试,以确认UUID的最不重要字节比大多数最重要字节更快地更改(以适应数据库索引聚集)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接