できるだけ効率的に計画を立てたいと思います。Google App Engineを使用する場合、読み取りと書き込みのコストが重要になるため、これらを最小限に抑えたいと思います。データストアの「キー」の概念を理解していません。私が知りたいのは、ある種のフィルターでフェッチするよりも、それが何であるかを知っていることを考えると、そのキーでエンティティをフェッチする方が効率的でしょうか?
Userというモデルがあり、ユーザーがcommentIdの配列(リスト)を持っているとします。ここで、このユーザーのコメントをすべて取得したいと思います。私には2つの選択肢があります:
ユーザーのcommentIdの配列はキーの配列であり、各キーはCommentエンティティへのキーです。私はすべてのキーを持っているので、それらのキーによってすべてのコメントをフェッチすることができます。
ユーザーのcommentIdの配列は、私がカスタムメイドした識別子です。この場合、通常の整数を自動インクリメントし、データストア内の各コメントには一意のcommentIntegerIdがあります。したがって、すべてのコメントを取得したい場合は、IDの配列にあるIDを持つすべてのコメントに基づいてフィルター処理されたフェッチを実行します。
どの実装がより効率的で、なぜですか?