2016-05-09 4 views
0

私は種別MyEntityのデータストアエンティティを持っており、StringIDキーを使用することがあります。IntIDによって生成されたキーは、AllocateIDsで生成されます。Google App Engine文字列と整数データストアのキーが衝突する可能性はありますか?

AllocateIDsで生成された整数IDを文字列IDが秘密に上書きしてしまうことがなく、文字IDと整数IDを安全に混在させることはできますか?

私は、文字列と整数のIDが同じインデックスを使用すると仮定しているためです。同じインデックスの整数IDを表すバイト列と同じ文字列IDを表すバイト列を誤って持つことは可能ですか?または、衝突を防ぐために文字列と整数のIDの名前を何らかの方法で入力しますか?

+0

キーとインデックスは全く異なるものです。 (また、文字列と整数もそうです) –

+0

これはすべて真ですが、最終的にデータストアキーを構成する文字列と整数は、効率的に取り出すために、インデックス上のバイトシーケンスとして表されます。 – Dan

答えて

1

はい、同じ種類の文字列&のInt IDを安全に混ぜることができます。同じキー(エンティティ)は同時に使用することはできません。重複する危険はありません。私はフードの下でprotocol buffersのようなものを使って[]byteにキーをシリアル化すると思います。

私はそれを生産上のように問題なく使用しました。

おそらく最高のデザインではありませんが、実際にはあなたのケースに依存します。

+0

Datastore自体には上書きはありませんが、整数だけで構成されるString名を許可すると仮定して、そのようなIDをクライアントに渡して戻す際には注意が必要です。 –

関連する問題