私は多対多の関係を持つアプリケーションを構築しています。エンティティ「画像」のアイテムは、任意の数のギャラリー(「ギャラリー」)にリンクできます。そしてもちろん、ギャラリーは任意の数の写真を保持できます。
したがって、ここでのGoogleの提案に従って、「Gallery」の外部キーを保持する「Picture」のリストを使用します。これはBigTableのアプローチです。
(古いスタイルのリレーショナルDBアプローチでは、「Picture」と「Gallery」の間にテーブル/エンティティを配置します。)
これが私の質問です:キーを保存するとき、「画像」の「StringListProperty」に行くべきですか、それとも「ListProperty(db.Key)」の方がうまくいくでしょうか?
StringListに見られる理由の1つは、Keys以外の値も格納できるということですが、一方で、それはとにかくダーティなスタイルになります。しかし、インデックスが爆発するため、Googleがエンティティで複数のリストを使用しないことを提案したこともかなり確信しています。だから、これは私を裏口に保つでしょう。
タイプが「Key 」のListPropertyの場合、値が実際にKeyである場合、1つのポイントは自動検証になります。
文字列をキーに、またはその逆に変換するのは非常に簡単なので、ここでリストタイプの1つを好む理由はわかりません。
パフォーマンスの問題に関しては、これをどのようにテストできるかわかりませんが、これがこの決定の主な要因になるようです。
あなたの入力に興味があります。特に誰かがこれでパフォーマンスをテストしたか、とても親切でそれをするなら。
乾杯、//ハンネス