向用户显示Java Google App Engine上的唯一项目列表

时间:2010-05-08 23:31:02

标签: java google-app-engine google-cloud-datastore

我一直在围绕着一个非常简单的挑战,但我想从一开始就以最有效的方式做到这一点。所以,我看过Brett Slatkin关于构建可扩展应用程序(包括http://www.youtube.com/watch?v=AgaL6NGpkB8)的Google IO视频(2008& 2009)并阅读文档,但作为n00b,我仍然不确定。

我正在尝试在GAEJ上构建一个类似于原始“hotornot”的应用程序,其中向用户呈现他们评价的项目。一旦他们对它进行评级,就会看到另一个他们以前从未见过的 我的问题是这个;最好先进行查询以获取x项(比如100)并将它们放入列表(存储在memcache中?),或者在每次评级后简单地查询新项目是否最好。
为了跟踪用户看到的项目,我计划将这些项目的密钥保存在用户实体的列表属性中。听起来合理吗?

我真的对此感到困惑,所以任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

我个人会这样做:

当用户登录时,创建一个他们没有看到的100个随机ID的列表。然后,当他们单击下一个项目时,请对数据存储区执行查询,然后撤回列表前面的那个。

如果这个结果太慢你可以尝试缓存,但是很难记住你整个数据库。即使加载他们需要的100个人也会很难(因为用户数量逐渐扩大)。为1个网页加载拉回1个条目并不慢。每次点击都会发布1条评论并将1条项目拉回来。很简单,数据存储区只有几个MS。做他们没有看到的100个随机ID可能会很慢,所以提前做并保持有意义(在他们的请求或会话中取决于你如何做...)