说我有一个表了一系列的记录,我想随机存在给用户。我还希望用户能够来回分页,所以我必须坚持某种顺序,至少在一段时间内。什么是“洗牌”数据库记录表的最佳方式?
该应用程序基本上只有AJAX,并且它对已经访问过的页面使用缓存,所以即使我总是提供随机结果,当用户尝试返回时,他也会得到前一页,因为它会从本地加载缓存。
的问题是,如果我只返回随机的结果,可能有一些重复。每个页面都包含6个结果,所以要避免这种情况,我不得不这样做WHERE id NOT IN (1,2,3,4 ...)
,我会把所有的以前加载的ID。
该溶液的巨大缺点是,它不可能缓存在服务器端任何东西,因为每个用户将请求不同的数据。
替代的解决方案可能是订购的记录中创建另一列,并洗牌它的每插入时间单位在这里。这里的问题是,我需要为表中的每条记录设置一个序列中的随机数,这会占用与记录一样多的查询。
我使用Rails和MySQL的,如果这是任何意义的。
作为用户的随机数据分页对我来说并没有多大意义。如果你称之为“6个随机帖子!”并只是与可能的重复生活在一起,似乎它将主要是你所要求的零工作。 – jdl 2011-01-05 23:46:44
那么如何回答答案?我很想知道是否有任何解决方案建议适用于您。 – noodl 2011-01-11 11:44:45