要做一个圈子功能如何实现 按时间,距离,关注进行权重比排序?

准备做一个圈子功能,当获取圈子列表时,用户按照时间(0.2),距离(0.3),是否关注(0.5)进行权重计算后排序展示。如果单位都是统一的很好计算,问题是这三个不同内容如何弄在一起进行排序,求大牛解答

阅读 2.7k
2 个回答

有公式的权重才是权重,没有公式的只能叫优先级。

比如有这样一个公式f(time) 0.2 + f(distance) 0.3 + f(isFollow) * 0.5 = score,得出分数再进行排序。

但是没有这样一个公式,权重就没有意义,只能说有一个优先级,根据优先级进行多重排序。

泻药
查询数据的时候计算权重,然后排序
一条查询语句就搞定了

SELECT *,(time * 0.2 + area * 0.3 + follow * 0.5) AS weight FROM `xxx_table` ORDER BY weight DESC;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题