によって多くおよび照会するには、Google AppEngineのひとつ:多くのに一つhttp://code.google.com/appengine/articles/modeling.html では、彼らはこれらの関係をモデル化する方法を示しています。はセクションでコレクション名
class Contact(db.Model):
# Basic info.
name = db.StringProperty()
birth_day = db.DateProperty()
...
class PhoneNumber(db.Model):
contact = db.ReferenceProperty(Contact,
collection_name='phone_numbers')
...
何それは私には思えるすると、以下の
scott = Contact(name='Scott')
scott.put()
PhoneNumber(contact=scott,
phone_type='home',
number='(650) 555 - 2200').put()
PhoneNumber(contact=scott,
phone_type='mobile',
number='(650) 555 - 2201').put()
for phone in scott.phone_numbers:
print '%s: %s' % (phone.phone_type, phone.number)
for phone in scott.phone_numbers:
print '%s: %s' % (phone.phone_type, phone.number)
を実行した場合
ことは、上記ための第二ですデータストアに再度照会します。
何らかの理由で "Scott"をループしてphone_numbersを呼び出していた場合は、多くの読み込みが実行されます。要求の存続期間中の最初の読み取り時にこれらをキャッシュするためのパターンがありますか?それとも手動で扱う必要がありますか?
Tx。
あなたはそれを最初に取得するときは、memcacheの内のデータをキャッシュすることができますが、あなたがそのデータ保証はありません時間が経つとそこに居るでしょう。あなたが実際に実行しようとしているこの操作が近接して起こっている場合、memcacheは動作するはずです。以下はいくつかのドキュメントです:http://code.google.com/appengine/docs/python/memcache/usingmemcache.html – Sologoub