热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

关于用户排行榜数据库设计?

因业务需求现在是需要在原有系统中加入用户排行榜功能。举个粒子:现在是有个订单表,要通过这个订单表来查询每个用户在一段时间内的总下单数量和支付金额总额,跟据支付总金额来计算排名,页面上是只

因业务需求现在是需要在原有系统中加入用户排行榜功能。
举个粒子:现在是有个订单表,要通过这个订单表来查询每个用户在一段时间内的总下单数量和支付金额总额,跟据支付总金额来计算排名,页面上是只需要展示前十名,但有个自己的排名位数,就是每个用户进来这个页面都能看到自己的具体排名,不考虑排名一样的情况,这种情况下如何设计数据库或者有什么其他的方法能够更高效的查出当前用户排名及排行榜,目前本人是通过mysql的分组统计查询来得到每个用户的下单总数和支付金额总额并且已经计算出排名,但能想到的是这条sql效率真的非常差,目前能还想到的一个方案是新建一张表保存截止到当天的排行信息,在每天的凌晨通过上面我写的统计sql来更新排行榜表,这样就能做到快速的响应每个用户的排行名次,现在就是想知道有啥更好的解决方案或者表设计,因为现在是只需要月榜,如果数据表设计的太死的话那以后需要周榜年榜就不好做了,希望各路大神不吝赐教!



感谢大神的热心回答,通过各位回答,我明白了要做排行榜功能使用redis的有序集合来做非常合适,但我目前是有个问题就是我需要的排行榜不仅仅是把名次排出来,我还需要把其他的内容也能查出来,就拿上面例子来说吧,通过用户当月的支付总额来排名,但我需要显示的排行榜不仅仅是用户名和支付总额,我还需要在排行榜中显示这个用户的当月的下单数量,redis的有序集合一个是用户id,一个就是用来排名的支付总额,对于这个场景就无能为力吧!难道再用下单数量来维护一个集合,查出排行榜再去集合里面查下单数量?


   



推荐阅读
  • 本文详细介绍了Python编程语言的学习路径,涵盖基础语法、常用组件、开发工具、数据库管理、Web服务开发、大数据分析、人工智能、爬虫开发及办公自动化等多个方向。通过系统化的学习计划,帮助初学者快速掌握Python的核心技能。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 在使用 DataGridView 时,如果在当前单元格中输入内容但光标未移开,点击保存按钮后,输入的内容可能无法保存。只有当光标离开单元格后,才能成功保存数据。本文将探讨如何通过调用 DataGridView 的内置方法解决此问题。 ... [详细]
  • 如何在PostgreSQL中查看数据表
    本文将指导您使用pgAdmin工具连接到PostgreSQL数据库,并展示如何浏览和查找其中的数据表。通过简单的步骤,您可以轻松访问所需的表结构和数据。 ... [详细]
author-avatar
MS07224_670
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有