0


0

GAEモデリング関係オプション

次の状況をモデル化する必要がありますが、Google App Engineでそれを「正しく」行う方法について一貫した例を見つけることができないようです。

次のような単純な状況があると仮定します。

Company 1 -----> M Store

会社には1対多の店舗があります。 各店舗には、住所行1、市、州、国、郵便番号などで構成される住所があります。

Ok. 「監査」を作成する必要があるとしましょう。 監査は企業を対象とするものであり、1対多の視線で行うことができます。

だから、のようなもの:

Audit 1 ------> 1 Company
      1 ------> M Store

ここで、「監査人」を適切な場所に送信するために、ストアの「住所」に基づいてすべての「監査」を照会する必要があります。

このような多数の記事があるようです:

「ContactCompany」モデルクラスの作成例を示します。 しかし、彼らはまた、パフォーマンスに「本当に必要」で「注意」を払うときにのみ、この種の関係を使うべきだと言っています。

また、できるだけ頻繁に非正規化して、すべての「クエリ可能な」データをAuditクラスに移動する必要があることを読みました。

これを解決する最良の方法として何を提案しますか?

Expandoクラスがあることを見てきましたが、これがこのための「最良の」オプションであるかどうかはわかりません。

これについての助けや考えをいただければ幸いです。

事前に感謝します、マット

1 Answer


1


class Company(db.Model):
   name = db.StringProperty()

class address(db.Model):
   address = db.PostalAddressProperty()

class store(db.Model):
   company = db.ReferenceProperty(Company)
   address = db.ReferenceProperty(Address)

これで、すべての会社の店舗を照会できます。

company_oject.address_set.all().filter().fetch()

数千のストアを持つMNCでない限り、ほとんどの場合、このクエリは正常に機能します。

さらに役立ちます。