做app接口的时候你们的分页是按照页码分还是按照时间分?我们移动开发的说要按时间分,原因是如果用户在某一页产时间停留,如果翻下一页的的话可能会看到前一页的内容,因为内容一直在更新,前一页的可能完全被最新内容占用,所以下一页就看到的是前一页的内容
看需求了,百度贴吧就是按页码分的
@SoaringTiger 这个我倒是看了,更新快的贴吧翻下一页都不知道是更新多少遍的内容了
@SoaringTiger APP不一样,只有下一页,没有上一页,按时间分有点复杂
主要看用户的思维,用户想看到什么,就呈现什么,😊
如果你更新很快的话,就要换一种方式去思考了 用刷新(下拉)和加载更多(上拉)的方式去做。 高效的方法是按 id 去分(除非时间是可更新的,否则 id 等于时间。),一般是倒序,在当前页,有一个最大 id, 和一个最小 id ,加载更多就是载入 比最小id小的纪录, where id < 最小id order by id desc limit 10。刷新就是 where id > 最大id 。。。截入后就会有新的 最大和最小id。 这样速度和界面效果应该是最理想的,目前很多 app 都是这么整的,cnodejs 也是这样的逻辑。
@klesh mongodb的id可以排序,mysql也只能按时间排了
如果有mysql有自增长id也是可以的吧
@hpgt mysql 怎么只能按时间排? 不是有个 auto_increment 吗? 所有的关系数据库都有支持自增ID。
@klesh 但是原本没用自增id,现在加也晚了
@hpgt 你们的数据库设计是傻逼吗
@hpgt 这个太神奇了,那怎么区分不同的行?用什么作主键?
一般用自增列作为主键是最佳实践,换句话说,用自增ID作为主键适用于大多数的场景。如果你们的应用很特殊的话那另当别论。 但若主键都没有,这就有点奇幻色彩了。
另外,自增列是可以追加的。
这个是看你的数据是时效性大不大吧.要是像微博之类的更新比较频发的就最好用时间分隔的方法来分页,也可以考虑一个现在微博网页版的做法,就是先以时间排序来分大页,之后在这些大页上再按时间分来页
@captainblue2013 第一个版本好像是外包的,后来自己人做了,一直沿用
@klesh 使用uuid做主键的
@kenshinhu 我觉得这个方法可行,也是我目前想到的方法
@hpgt 去吧!少年!快快去创造奇迹!!!
@hpgt 这还沿用就是磨洋工了,数据库弄一下也不用多久,找个夜深人静的通宵就行了