我需要模拟以下情况,我似乎无法找到一个 关于如何“正确”为谷歌应用程序做这个一致的例子 发动机。
假设我遇到如下情况:
Company 1 -----> M Store
一家公司有一到多家商店。每家商店都有一个地址组成 地址行1,城市,州,国家,邮政编码等。
确定。让我们说我们需要创建一个“审计”。审计是针对a 公司,可以跨越一对多的目光。
类似于:
Audit 1 ------> 1 Company
1 ------> M Store
现在我们需要根据商店查询所有“审核” “地址”,以便将“审计员”发送到正确的位置。
似乎有很多这样的文章:
http://code.google.com/appengine/articles/modeling.html
其中给出了创建“ContactCompany”模型类的示例。 但他们也说你应该使用这种关系 只有当你“真的需要”和“关心”表现时才会有。
我也经常阅读 - 你应该尽可能地反规范化 因此可以将所有“可查询”数据移动到审计中 类。
那么您认为什么是解决这个问题的最佳方法?
我已经看到有一个Expando类,但我不确定是不是 这是“最好”的选择。
对此的任何帮助或想法都将完全受到赞赏。
提前致谢, 马特
答案 0 :(得分: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,否则此查询在大多数情况下都可以正常工作。
http://code.google.com/appengine/docs/python/datastore/entitiesandmodels.html#References
进一步帮助。