0

私は次の2つのエンティティを持っています。

class Photo(db.Model):
    name=db.StringProperty()
    registerdate=db.DateTimeProperty()
    iso=db.StringProperty()
    exposure=db.StringProperty()

class PhotoRatings(db.Model):
    ratings=db.IntegerProperty()

私は次のことをする必要があります。評価 (PhotoRatings) で並べ替えられた iso=800 のすべての写真 (Photo) を取得します。評価は常に変化し、Photo エンティティ全体を毎回書き込む必要があるため、Photo 内に評価を追加することはできません。これにより、より多くの時間と費用がかかり、アプリケーションのパフォーマンスが低下します。https://developers.google.com/appengine/articles/modelingを読みましたが、 そこから多くの情報を得ることができませんでした。

編集:あまりにも多くのアイテムを取得することを避け、手動で一致を実行したいと考えています。迅速かつ効率的なソリューションが必要です。

4

2 に答える 2

1

請求ドキュメントを見ると、プロパティの変更された数ごとにエンティティの書き込みが課金されていることがわかります。

したがって、実行しようとしていることによって書き込みコストが削減されることはありませんが、エンティティの数が2倍になるため、読み取りコストが確実に増加します。

于 2013-01-07T07:06:54.950 に答える
1

明示的に非リレーショナル データストアを使用してリレーショナル データベース クエリを実行しようとしています。

ご想像のとおり、これには問題があります。データストアで結果を並べ替えたい場合は、並べ替えたいものにインデックスを付けることができなければなりません。インデックスは複数のエンティティ タイプにまたがることはできないため、Photoによって並べ替えられた s のインデックスを持つことはできませんPhotoRatings

ごめん。


ただし、どちらがより頻繁に発生するでしょうか? この写真の順序を照会したり、誰かが写真を評価したりしますか? おそらく、アクションよりもビューの方がはるかに多いため、評価をPhotoエンティティの一部として保存しても、恐れているほど大きなヒットにはならないかもしれません。

于 2013-01-07T06:40:41.443 に答える