【发布时间】:2012-07-13 18:16:17
【问题描述】:
在我的应用程序中,我们需要在数据存储区中开发一个 FRIENDS 关系表。当然,我想到的一个快速解决方案是:
user = db.ReferenceProperty(User, required=True, collection_name='user')
friend = db.ReferenceProperty(User, required=True, collection_name='friends')
但是,当朋友列表增长到一个巨大的数字,比如几千或更多时会发生什么?这会不会太低效了?
性能始终是我们的首要任务。这是非常需要的,因为我们将没有更多的东西来遵循这种类似的关系设计。
请就在 App Engine Python 环境中使用数据存储区设计 FRIENDS 关系表的最佳方法提供建议。
编辑 除了 FRIENDS 关系,FOLLOWER 关系也将被创建。而且我相信在大多数情况下,所有这些关系都足以成为查询,因为我的应用程序往往是面向社交媒体的。
例如,如果我关注一些用户,我将获得关于他们将要做什么等的新闻提要更新。随着时间的推移,活动会增加。至于有多少用户,我还不能回答,因为我们还没有上线。但我预计随着我们的发展,将会有数百万用户。
希望这将有助于获得更具体的建议,或者是否有替代这种方法的方法?
【问题讨论】:
-
这样的事情是否有效取决于很多事情。您将拥有多少用户(作为上限)?用户会有多少关系?您如何在应用程序中使用关系?这些关系多久更新一次?
-
@Dan Holevoet,感谢您的提问。我已经更新了描述。请提供一些建议,因为这对我们开始使用正确的方法开始非常重要。
标签: python google-app-engine google-cloud-datastore