0

我需要对以下情况进行建模,我似乎无法找到一个一致的例子来说明如何为谷歌应用引擎“正确”地做到这一点。

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

Company 1 -----> M Store

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

好的。假设我们需要创建一个“审计”。审计是针对一家公司的,可以跨越一对多的目光。

所以像:

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

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

好像有很多这样的文章:

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

其中给出了创建“ContactCompany”模型类的示例。然而,他们也说,只有在“真正需要”并且“关心”性能时,才应该使用这种关系。

我还经常阅读到,您应该尽可能地进行非规范化,从而将所有“可查询”数据移动到 Audit 类中。

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

我已经看到有一个 Expando 类,但我不确定这是否是“最佳”选项。

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

在此先感谢,马特

4

1 回答 1

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

进一步帮助。

于 2010-04-07T04:27:35.727 回答