gpt4 book ai didi

php - 通过 API 对未排序和过滤的数据库数据进行分页的最佳方法是什么?

转载 作者:行者123 更新时间:2023-11-29 11:32:22 25 4
gpt4 key购买 nike

我已经被这个问题困扰了一段时间,我必须为主页获取数据,例如执行多个查询来按受欢迎程度、浏览次数最多等过滤数据,然后使用“union”将所有内容合并到单个查询中。因此,查询会根据重要性自动对它们进行排序,例如,首先是精选记录,然后是最受欢迎的记录,然后是浏览次数最多的记录,依此类推。数据会不时发生变化,如果有一些新记录,或者某些记录比其他记录更受欢迎,则可能会交换顺序。但是,当我通过分页或“加载更多”获取更多数据,同时某些记录与后台的另一个记录交换位置时,​​该记录将在下一页中再次显示,这使得它变得多余,因为它也显示在第一个。

我使用since_ID和max_ID检查了一些twitter API算法,但就我而言,它们没有帮助,因为我没有按ID或任何特定顺序对它们进行排序,这就是复杂性出现的地方。

那么在这种情况下我到底应该如何处理冗余数据呢?有人有过类似的经历吗?

提前致谢!

最佳答案

当您“加载更多”时,您可以发送已显示的 ID 集,然后在 sql 查询中使用附加条件“并且 id 不在([此处排除集])”中排除它们。

然而,使用分页系统,它会变得太复杂,因为你必须传递所有访问过的页面的集合,并且你不控制访问的顺序,它会变得一团糟。因此,对于分页,我建议您简单地保留排名并最终将其缓存 X 分钟。因此,所有用户都会在几分钟内体验到相同的排名,并且页面永远不会显示重复的内容。此外,为了改善用户体验,您可以在排名更新时添加视觉反馈,从而提供交互感。

关于php - 通过 API 对未排序和过滤的数据库数据进行分页的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37188399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com