请教一个关于多重排序条件的问题

请教大家一个信息排序的问题。

现在有一个信息表。字段如下

标题 省市区(city) 发布时间(time)
标题1 北京市朝阳区 2022年5月1日
标题2 北京市丰台区 2022年5月1日
标题3 北京市大兴区 2022年5月2日
标题4 北京市朝阳区 2022年5月2日
标题5 北京市东城区 2022年4月3日
标题6 北京市朝阳区 2022年4月3日
标题7 北京市东城区 2022年3月4日
标题8 北京市大兴区 2022年3月4日
标题9 北京市丰台区 2022年2月5日

另外,我也可以获取到访问者的所在位置的区县。

场景

用户在网站上可以切换 城市 来查看数据
这些信息都是和生活有关的信息,所以信息根据地理位置从近到远的排列也比较重要。比如用户在朝阳区,那么先看到朝阳区的数据,再看到朝阳区之外的数据。
最新的数据尽量展示在前面,旧的数据展示在后面。这个也比较重要。

问题来了:用户看到的数据,怎么排列合理一些?

1,如果按照位置排序,先展现朝阳区的数据,再展现其他地方的数据。那么时间范围怎么控制?有可能朝阳区还有1年前的数据。但是其他区的数据,有最近几天的。这时候,其他区的最近几天的数据优先级要大于朝阳区1年前的数据。
2,如果按照时间倒序排列,城市数据又该怎么展现呢?

各位大神有好的排列方式吗?

乌鸦嘴新手社区 wyz.xyz 为技术新手提供服务
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
laravel_peng
最佳答案

这时候,其他区的最近几天的数据 优先级 要大于朝阳区 1 年前的数据。

  • 既然你这里提到了优先级,是否可以从这里着手,我们也可以理解为数据的有效权重。(认为它就是一个有效数据打分)
  1. 距离越近分数越高,比如1公里内50分、1-5公里内30分、5-10公里内10分。
  2. 时间越靠近当下分数越高,1个月内50分、1-3月内30分、3-8月内10分、8-12内5分、12-n 0分。
  3. 根据用户定位地址,查询出周边几个地区的所有相关数据,然后计算每条数据的分数,进行分数倒序这个样子。
1年前 评论
shebaoting (楼主) 1年前
讨论数量: 3
laravel_peng

这时候,其他区的最近几天的数据 优先级 要大于朝阳区 1 年前的数据。

  • 既然你这里提到了优先级,是否可以从这里着手,我们也可以理解为数据的有效权重。(认为它就是一个有效数据打分)
  1. 距离越近分数越高,比如1公里内50分、1-5公里内30分、5-10公里内10分。
  2. 时间越靠近当下分数越高,1个月内50分、1-3月内30分、3-8月内10分、8-12内5分、12-n 0分。
  3. 根据用户定位地址,查询出周边几个地区的所有相关数据,然后计算每条数据的分数,进行分数倒序这个样子。
1年前 评论
shebaoting (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!