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

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

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

标题 省市区(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 来玩。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
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. 根据用户定位地址,查询出周边几个地区的所有相关数据,然后计算每条数据的分数,进行分数倒序这个样子。
3年前 评论
shebaoting (楼主) 3年前
讨论数量: 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. 根据用户定位地址,查询出周边几个地区的所有相关数据,然后计算每条数据的分数,进行分数倒序这个样子。
3年前 评论
shebaoting (楼主) 3年前