Google Cloud NDB 整数与 urlsafe ID?
Google Cloud NDB integer vs urlsafe IDs?
google-cloud-ndb
Python 库提供了两种为 Datastore 实体生成标识符的方法:
integer_id()
: Returns 整数形式的 ID。
urlsafe()
: Returns 密钥的 base64 字符串。
如果我要创建到特定实体的 URL 映射(例如:/users/<user_id>/
),我可以使用这些 ID 选项中的任何一个吗?
我认为对 URL 使用 base64 编码版本有一些好处?唯一的问题是它会导致一些非常难看的 URLs,所以为了美观我更喜欢使用整数。
使用任一选项是否有技术优势(如提高性能)?
如果您在创建实体时指定了自己的自定义 ID,那么 url 安全键会很有用,因为您的自定义 ID 可能包含无法进入 url.
的字符
此外,url安全密钥中还内置了类型和项目 ID,以防万一你弄错了电线并将错误的 ID 传递到错误的位置。
我不会说有性能优势。
关于 url 安全密钥的另一个注意事项是格式最近发生了变化。 ndb 库是向后兼容的,所以一般来说它应该没问题,但这是他们将来可能会再次做的事情,所以请注意这一点。
google-cloud-ndb
Python 库提供了两种为 Datastore 实体生成标识符的方法:
integer_id()
: Returns 整数形式的 ID。urlsafe()
: Returns 密钥的 base64 字符串。
如果我要创建到特定实体的 URL 映射(例如:/users/<user_id>/
),我可以使用这些 ID 选项中的任何一个吗?
我认为对 URL 使用 base64 编码版本有一些好处?唯一的问题是它会导致一些非常难看的 URLs,所以为了美观我更喜欢使用整数。
使用任一选项是否有技术优势(如提高性能)?
如果您在创建实体时指定了自己的自定义 ID,那么 url 安全键会很有用,因为您的自定义 ID 可能包含无法进入 url.
的字符此外,url安全密钥中还内置了类型和项目 ID,以防万一你弄错了电线并将错误的 ID 传递到错误的位置。
我不会说有性能优势。
关于 url 安全密钥的另一个注意事项是格式最近发生了变化。 ndb 库是向后兼容的,所以一般来说它应该没问题,但这是他们将来可能会再次做的事情,所以请注意这一点。