Google App Engine 数据存储区中自动生成的最大 ID 是多少?
为什么这么问?
我想使用字母表以####-####-####之类的格式向我的客户显示一个对用户更友好的 ID :
0123456789ABCDEFGHIJKLMNPQRSTUVWXYZ
字符 O 已被删除,以避免与数字 0 混淆。
我需要知道代表所有ID需要多少组###。
Google App Engine 数据存储区中自动生成的最大 ID 是多少?
为什么这么问?
我想使用字母表以####-####-####之类的格式向我的客户显示一个对用户更友好的 ID :
0123456789ABCDEFGHIJKLMNPQRSTUVWXYZ
字符 O 已被删除,以避免与数字 0 混淆。
我需要知道代表所有ID需要多少组###。
2^53(64 位浮点数的整数部分)
从文档“实体和索引的存储方式”(https://developers.google.com/appengine/articles/storage_breakdown/):
键的第一个组成部分是实体类型——模型或模型对象的类名(str)。下一个组件是 ID (int64) 或键名 (str)。请注意,实体可以具有数字 ID 或键名,但不能同时具有
所以它听起来像 ID,如果一个整数是 64 位,我相信它是有符号的,所以你会有 2^63 - 1 作为最大值(9223372036854775807)。
并从数据存储区(python)文档的这一部分:https ://developers.google.com/appengine/docs/python/datastore/entities#Python_Assigning_identifiers
可以将数据存储区配置为使用两种不同的自动 ID 策略生成自动 ID:
默认策略生成大致均匀分布的随机 ID 序列。每个 ID 最长可达 16 位。
旧版策略会创建一系列不连续的较小整数 ID。
这将是 16 个十进制数字(因此长度为 16 个字符)