我一直在围绕着一个非常简单的挑战,但我想从一开始就以最有效的方式做到这一点。所以,我看过Brett Slatkin关于构建可扩展应用程序(包括http://www.youtube.com/watch?v=AgaL6NGpkB8)的Google IO视频(2008& 2009)并阅读文档,但作为n00b,我仍然不确定。
我正在尝试在GAEJ上构建一个类似于原始“hotornot”的应用程序,其中向用户呈现他们评价的项目。一旦他们对它进行评级,就会看到另一个他们以前从未见过的
我的问题是这个;最好先进行查询以获取x项(比如100)并将它们放入列表(存储在memcache中?),或者在每次评级后简单地查询新项目是否最好。
为了跟踪用户看到的项目,我计划将这些项目的密钥保存在用户实体的列表属性中。听起来合理吗?
我真的对此感到困惑,所以任何帮助都会非常感激。
答案 0 :(得分:0)
我个人会这样做:
当用户登录时,创建一个他们没有看到的100个随机ID的列表。然后,当他们单击下一个项目时,请对数据存储区执行查询,然后撤回列表前面的那个。
如果这个结果太慢你可以尝试缓存,但是很难记住你整个数据库。即使加载他们需要的100个人也会很难(因为用户数量逐渐扩大)。为1个网页加载拉回1个条目并不慢。每次点击都会发布1条评论并将1条项目拉回来。很简单,数据存储区只有几个MS。做他们没有看到的100个随机ID可能会很慢,所以提前做并保持有意义(在他们的请求或会话中取决于你如何做...)