Google Cloud NDB 整数与 urlsafe ID?

Google Cloud NDB integer vs urlsafe IDs?

google-cloud-ndb Python 库提供了两种为 Datastore 实体生成标识符的方法:

如果我要创建到特定实体的 URL 映射(例如:/users/<user_id>/),我可以使用这些 ID 选项中的任何一个吗?

我认为对 URL 使用 base64 编码版本有一些好处?唯一的问题是它会导致一些非常难看的 URLs,所以为了美观我更喜欢使用整数。

使用任一选项是否有技术优势(如提高性能)?

如果您在创建实体时指定了自己的自定义 ID,那么 url 安全键会很有用,因为您的自定义 ID 可能包含无法进入 url.

的字符

此外,url安全密钥中还内置了类型和项目 ID,以防万一你弄错了电线并将错误的 ID 传递到错误的位置。

我不会说有性能优势。

关于 url 安全密钥的另一个注意事项是格式最近发生了变化。 ndb 库是向后兼容的,所以一般来说它应该没问题,但这是他们将来可能会再次做的事情,所以请注意这一点。