是否有较短 UUID 的标准或替代方案?
Is there a standard or alternative for shorter UUIDs?
UUID 标准有多个版本。例如,版本 4 基于完全随机的输入。但它仍然对版本信息进行编码,并且只使用了可能的 128 位中的 125 位。
但是对于通过 HTTP 传输这些,将它们编码为 BASE64 更有效。有用于此的库 (https://github.com/skorokithakis/shortuuid)。
但我想知道的是:是否有更短的 ID 字符串的替代标准?当然,我可以将一个版本字节 + n 个随机字节组合在一起,然后对它们进行 BASE64 编码,这有我自己的工作 'short, random ID scheme',但我想知道在我自己制作之前是否有人已经指定了任何替代方案。
没有短的标准。
很多人都问过同样的问题,并且都得出了同样的结论:UUID 对他们的特定要求来说太过分了。他们开发了自己的替代方案,这些替代方案本质上可以归结为某种长度的随机字符串(基于其数据集的预期大小),采用更高效的编码方式,如 base64。他们中的许多人已经发布了用于处理这些字符串的库。然而,他们都遇到了同样的两个问题:
- 他们无法处理任意大的数据集(UUID 如此之大的原因)
- 它们不是标准化的,这意味着没有真正的互操作性。
如果这些问题都没有影响到您,那么您可以随意选择任何可用的方案或自己动手。但是,如果您发现自己的要求是错误的,请务必考虑未来的成本,以及必须更改的成本是否证明 space 中的任何微不足道的优势或不从一开始就使用经过验证的通用系统所带来的复杂性。
我刚找到https://github.com/ai/nanoid
它不是真正的 'standard',但至少不是我自己想出的任意方案。它通过更智能的编码(更大的字母表)更短,速度更快。
UUID 标准有多个版本。例如,版本 4 基于完全随机的输入。但它仍然对版本信息进行编码,并且只使用了可能的 128 位中的 125 位。
但是对于通过 HTTP 传输这些,将它们编码为 BASE64 更有效。有用于此的库 (https://github.com/skorokithakis/shortuuid)。
但我想知道的是:是否有更短的 ID 字符串的替代标准?当然,我可以将一个版本字节 + n 个随机字节组合在一起,然后对它们进行 BASE64 编码,这有我自己的工作 'short, random ID scheme',但我想知道在我自己制作之前是否有人已经指定了任何替代方案。
没有短的标准。
很多人都问过同样的问题,并且都得出了同样的结论:UUID 对他们的特定要求来说太过分了。他们开发了自己的替代方案,这些替代方案本质上可以归结为某种长度的随机字符串(基于其数据集的预期大小),采用更高效的编码方式,如 base64。他们中的许多人已经发布了用于处理这些字符串的库。然而,他们都遇到了同样的两个问题:
- 他们无法处理任意大的数据集(UUID 如此之大的原因)
- 它们不是标准化的,这意味着没有真正的互操作性。
如果这些问题都没有影响到您,那么您可以随意选择任何可用的方案或自己动手。但是,如果您发现自己的要求是错误的,请务必考虑未来的成本,以及必须更改的成本是否证明 space 中的任何微不足道的优势或不从一开始就使用经过验证的通用系统所带来的复杂性。
我刚找到https://github.com/ai/nanoid
它不是真正的 'standard',但至少不是我自己想出的任意方案。它通过更智能的编码(更大的字母表)更短,速度更快。