私はアイテムとアイテムのトランザクションを持つGAEPythonプロジェクトに取り組んでいます。
最初は、参照プロパティを持つアイテムの種類とトランザクションの種類を使用しようとしましたが、クエリが非常に複雑になりました。
そのため、トランザクションデータがアイテムに直接格納されているオールインワンバージョンに切り替えました。これにより、すべてのアイテムがトランザクションに関係しているわけではないため、多くの属性が使用されなくなりました。
アプリの速度が上がると思っていましたが、これが最善の方法ですか?
知っています:
- たくさんの取引ともっとたくさんのアイテムがあると予想しています。
- トランザクションのステータスを確認する必要があります(実際にはアイテムのステータスに保存されています)。
- アイテムごとに可能なトランザクションは1つだけですが、さまざまな種類のトランザクションがあります。
より良い解決策はありますか?
編集:
問題は、ほとんどの場合、トランザクション属性を使用してアイテムをクエリすることですが、一度に最大で2つのwhere句のみを使用し、トランザクションを頻繁に更新します。
実際、私はこのようなものを持っています:
クラスMyItem(db.Model):
owner = db.ReferenceProperty(MyUser)
descr = db.StringProperty()
status = db.IntegerProperty() # contains item status / transaction status
tx_actor = db.emailProperty()
tx_token = db.StringProperty()
latest_tx_date = db.DateTimeProperty()