2010-04-07 109 views
0

我需要模拟以下情况,我似乎无法找到一个 一致性示例,说明如何正确地为Google应用 引擎执行此操作。GAE建模关系选项

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

Company 1 -----> M Store 

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

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

因此,像:

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

现在我们需要查询都基于存储 “地址”的“审核”,以发送“审计”,以正确的位置。

似乎有是这样一个大量文章:

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

这给创造一个“ContactCompany”模型类的实例。 但是他们也表示,只有当你“真正需要”和“关心”表现时,你才应该使用这种关系 。

我也经常阅读 - 你应该尽可能地去规范化多达 ,因此可以将所有“可查询”数据移入审计 类。

那么你会建议如何解决这个问题?

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

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

由于提前, 马特

回答

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

帮助进一步。

+0

谢谢你的回答。 – Sway 2010-04-19 23:38:39