请问老师一个课外问题
来源:4-13 图片选择器功能实现-2
慕用1394343
2019-04-01
想问问比如百度贴吧的按时间排序的问题
某吧一个一两年前的帖子, 今天我评论了一下,它就会跑到所有帖子最前面,我想请问怎么处理的呢?
我想 每次评论都会修改对应帖子的 “最后更新时间” 这个字段, 但是不能每次刷新都去把所有帖子都进行排序吧? 如果有很多数据呢 . 所以我想的是把这个帖子添加到某张表里面, 每次刷新都先从这张表里拿数据. 后面我不知道该怎么做了 这张表数据会越来越多, 我想用户拿走表里数据后就删除对应的数据, 但是其它用户就看不到了, 不删除吧数据会越来越多, 那这表也没意义了…
2回答
-
你的这个问题你自己回复了,我还在未解决中找没找到呢~
其实是这样的:
两个表:主表存放基本的文章信息,评论表存放评论信息
主表仅仅在帖子新建、更改时变更,评论的插入并不引起主表变更;但是主表与评论表之间有外键连接。
当用户发布评论时肯定是评论表数量增加了,并且有时间。
后续展示的时候是连表查询差,首先按评论表时间顺序排序,并且过滤掉同一个外键(对应主表)的方式就可以得到你说的列表展示的时候帖子跑前面了。
而且只要索引和时间联表查询弄好了,不会引起全表扫描的,也没啥很高的消耗,并且查询一次后可以放入缓存,后续新增评论的时候也可以去更新缓存,所以并不会引起DB数据库扫描的。
032019-04-04 -
慕用1394343
提问者
2019-04-03
额 老师 这个问题不用回答了 我感觉我想多了 我在一张帖子表里放了100条数据, 然后查询时 设置时间降序, 然后设置查询返回5条(.setMaxResults(5)), 发现 查询的时候是把所有数据都查询了,找出5条时间最大的, 然后才返回来 , (我以前以为随机抽5条然后排序才反回来) 想问老师,如果数据很多很多,这样会对效率影响大吗
00
相似问题