Google App Engine を使用していますが、一部のデータ クエリでパフォーマンスが低下しています。App Engine データストアの設計は、SQL データベースでの作業とは異なる考え方であると読みましたが、これが最善の方法であるかどうか確信が持てません。正しい軌道に乗るために、2 つの質問があります。
具体的には:
Foo
タイプとタイプがありUserFoo
ます。それぞれUserFoo
が対応する の「インスタンス」であり、Foo
そのインスタンスに固有のデータを保持します。私のFoo
タイプにはfooCode
一意の識別子であるプロパティがあり、それらのプロパティを使用してUserFoo
それぞれをマップします。次に、次のようなコードで各 Foo を操作します。Foo
fooCode
foos = Foo.all().filter('bar =', bar)
for foo in foos:
userFoo = UserFoo.all().filter('userKey =', user).filter('fooCode =', foo.fooCode)
注:fooCode
新しい を簡単に削除して再追加Foo
し、対応するすべての を再マップする必要がないように、参照キーを使用していUserFoo
ます。
一般に:
GAE データストア テーブルを設計するための一般的なアプローチと、それらを使用するためのベスト プラクティスは何ですか?