数据库关键字段:up 、 down 、 time 、 rank
现在情况是 reddit 的数学公式是有的。参考
目前采用的方案是按时间查询出来 20 条,然后再把这些按照按照上面的数学公式给 rank 赋值,最后使用快排,排列 rank.
但是感觉这样问题还是挺多的:
- 排序算法只是在某个时间段内的排序,没有在时间段的不一定不在这一次排序内
- 效率不是太高
所以有没有一个比较合适的方法,能够让库里面所有的都按照这个数学模型排序?就是 sql 语句的 order by 是按照计算之后的值
能够想到的方法:
- sql 语句(不是太熟)
- 使用缓存 redis
- 视图?