【问题标题】:GAE modeling relationship optionsGAE 建模关系选项
【发布时间】:2010-04-07 04:16:28
【问题描述】:

我需要模拟以下情况,但我似乎找不到 关于如何为谷歌应用程序“正确”执行此操作的一致示例 引擎。

假设我有一个简单的情况,如下所示:

Company 1 -----> M Store

一家公司有一对多的商店。每个商店都有一个地址 地址行 1、城市、州、国家、邮政编码等。

好的。假设我们需要创建一个“审计”。审计是为了 公司,并且可以被一对多注视。

比如:

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

现在我们需要根据 Store 查询所有的“审计” “地址”,以便将“审核员”发送到正确的位置。

这样的文章好像很多:

http://code.google.com/appengine/articles/modeling.html

其中给出了创建“ContactCompany”模型类的示例。 但是他们也说你应该使用这种关系 仅当您“确实需要”并“关心”性能时。

我也经常阅读到,你应该尽可能多地去规范化 可能,从而将所有“可查询”数据移动到审计中 类。

那么您认为解决此问题的最佳方法是什么?

我看到有一个 Expando 课程,但我不确定是否是 “最佳”选项。

对此的任何帮助或想法将不胜感激。

提前致谢, 马特

【问题讨论】:

    标签: google-app-engine data-modeling entity relationship


    【解决方案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()
    

    除非它是拥有数千家商店的跨国公司,否则此查询在大多数情况下应该可以正常工作。

    http://code.google.com/appengine/docs/python/datastore/entitiesandmodels.html#References

    进一步帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-08
      • 1970-01-01
      • 2013-04-10
      • 1970-01-01
      • 1970-01-01
      • 2014-03-14
      • 2015-04-20
      • 2016-12-24
      相关资源
      最近更新 更多