我有一个 UUID 字符串,我想用作我的 MySQL 表的主键,UUID 是一个 32 个字符的十六进制字符串(在 '-' 字符被剥离之后)。由于最好使用数字列 (int) 作为数据库中的主键,我想将其转换为整数但不确定处理它的最佳方式。
- 由于字符串的大小(即 uuid='a822ff2bff02461db45ddcd10a2de0c2'),我是否需要将其分成多个“子字符串”。
- 目前我在 32 位架构上运行 PHP,因此由于 PHP_INT_MAX 大小(最大 0xFFFFFFFF),无法在 PHP 中转换它。我怀疑这对 MySQL 也是同样的限制。
- 我不喜欢使用多个主键来解决这个问题,我宁愿使用字符串表示,即使这不是首选方法。
我可能认为这一切都是错误的,我并不反对阅读文档,因此示例或建议阅读作为回应都是可以接受的。
最佳答案
在大多数情况下,最好将 UUID/GUID 存储为 BINARY(16)
。查看这些相关的 StackOverflow 问题:
转换可以(并且可能应该)在 MySQL 而不是 PHP 中完成,因此无论您使用 32 位 PHP 客户端还是 64 位都无关紧要(双关语:P)
关于php - 处理大型 (UUID) 作为 MySQL 表主键的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16122934/