Google AppEngine中的多对多关系 - 高效吗?

时间:2010-07-09 08:21:32

标签: python google-app-engine performance many-to-many

我正在使用Google Appengine存储收藏列表,将Facebook UserID链接到Bing中的一个或多个ID。我需要函数调用返回已经收藏项目的用户数量,以及项目被收藏(以及由谁收藏)的次数。

我的问题是,为了提高效率,我应该将这种关系解析为两个表吗?如果我有一个包含Facebook ID和Bing ID列的表,我可以轻松地对上述两个函数使用select查询,但是这将要求在每个查询中搜索每一行。替代方案是有两个表,一个用于每个Facebook用户的收藏夹,另一个用于每个Bing项目的收藏用户,并使用事务使它们保持同步。这两个表选项的优点是能够在数据库中使用JSON或CSV,因此只需要获取一行,并且需要对API进行少量操作。

在效率和降低成本方面哪个选项更好?

谢谢, 马特

1 个答案:

答案 0 :(得分:0)

我认为对这样的问题没有一个快速和快速的答案。 “这种优化是否值得”总是取决于许多变量,例如缺乏优化实际上是一个问题吗?它有多大问题?与额外收益相比,额外时间和精力以及更复杂优化实施的漏洞风险成本是多少?稍后实施优化的额外成本可能是什么,例如数据迁移到新模式?