我一直坚持这个问题,我必须为主页获取数据,比如多次查询以按受欢迎程度过滤数据,大多数查看等等,并使用“union”将所有内容合并到一个查询中。因此,查询会根据重要性自动对其进行排序,例如,首先是特色,然后是大多数流行的记录,然后是最常见的记录,依此类推。如果有一些新记录,数据会不时变化,或者某些记录变得比另一个记录变得更受欢迎,它可能会交换订单。但是,当我通过分页或“加载更多”获取更多数据,同时一些记录与后台中的另一个交换位置时,此记录将在下一页再次显示,这使其变得多余,因为它也显示在第一个。
我检查了一些带有since_ID和max_ID的twitter API算法,但在我的情况下,它们没有帮助,因为我没有按ID或任何特定顺序对它们进行排序,这就是复杂性出现的地方。
那么在这种情况下我应该如何处理冗余数据呢?有没有人有类似的经历?
提前致谢!
答案 0 :(得分:1)
当您加载更多"时,您可以发送已经显示的ID集合,从而在sql查询中将其添加为附加条件"并且不在([在此处排除])"。
然而,对于分页系统,由于您必须通过所访问的所有页面的集合并且您不能控制访问顺序,它会变得太复杂,它将变成完全混乱。 因此,通过分页,我建议您只需让您的排名为最终缓存X分钟。因此,所有用户在几分钟内体验相同的排名,页面从不显示重复的内容。此外,为了改善用户体验,您可以在更新排名时添加视觉反馈,从而提供交互感。