Google App Engine データストアで自動生成される ID の最大数は?
なぜこの質問?
アルファベットを使用して####-####-####のような形式で、よりユーザーフレンドリーな ID を顧客に表示したいと考えています。
0123456789ABCDEFGHIJKLMNPQRSTUVWXYZ
数字の 0 との混同を避けるために、文字 O は削除されています。
すべての ID を表すには、### のグループがいくつ必要かを知る必要があります。
Google App Engine データストアで自動生成される ID の最大数は?
なぜこの質問?
アルファベットを使用して####-####-####のような形式で、よりユーザーフレンドリーな ID を顧客に表示したいと考えています。
0123456789ABCDEFGHIJKLMNPQRSTUVWXYZ
数字の 0 との混同を避けるために、文字 O は削除されています。
すべての ID を表すには、### のグループがいくつ必要かを知る必要があります。
ドキュメント「エンティティとインデックスの保存方法」( https://developers.google.com/appengine/articles/storage_breakdown/ ) から:
キーの最初のコンポーネントはエンティティの種類、つまりモデル オブジェクト (str) に与えられたモデルまたはクラス名です。次のコンポーネントは、ID (int64) またはキー名 (str) です。エンティティは数値 ID またはキー名を持つことができますが、両方を持つことはできません。
したがって、整数が64ビットの場合、IDのように聞こえます。署名されていると思われるため、最大値は2 ^ 63 - 1になります(9223372036854775807)。
およびデータストア (python) ドキュメントのこの部分から: https://developers.google.com/appengine/docs/python/datastore/entities#Python_Assigning_identifiers
データストアは、2 つの異なる自動 ID ポリシーを使用して自動 ID を生成するように構成できます。
デフォルト ポリシーは、ほぼ均一に分散されたランダムなシーケンスの ID を生成します。各 ID の長さは最大 16 桁です。
従来のポリシーは、連続していない小さい整数 ID のシーケンスを作成します。
これは 10 進数で 16 桁になります (したがって、長さは 16 文字になります)。