绪 论
1.1 研究背景
篮球运动在全球范围内拥有广泛受众,NBA作为顶级职业联赛,每赛季产生海量赛事记录与球员统计信息1。传统数据获取方式依赖分散的网页查询或静态表格,信息更新滞后且缺乏系统性整合,导致球迷难以快速掌握球员生涯轨迹、球队战术演变及历史交锋细节。现有平台多侧重新闻播报,忽略深度数据关联分析,用户无法在一个统一界面完成从基础资料查阅到多维度对比的全过程。随着互联网技术迭代,构建集中化数据管理平台成为行业趋势,能够打破信息孤岛,实现资源高效聚合。系统化处理比赛得分、篮板、助攻等核心指标,不仅有助于爱好者深入理解竞技规律,也为教练团队及媒体从业者提供可靠参考依据。当前体育产业对数据价值挖掘需求持续增长,开发专用分析工具可填补市场空白,优化信息传播路径,提升用户体验,推动体育数据服务向专业化、精细化方向发展。
1.2 研究意义
构建NBA数据分析系统平台能够整合分散的赛事记录与球员统计资源,打破信息孤岛,实现体育数据的集中化管理与高效检索2。系统通过结构化存储得分、篮板、助攻等核心指标,为篮球爱好者提供统一查询入口,降低获取专业信息的门槛,提升观赛体验与数据理解深度。对于媒体从业者及研究人员,平台提供的多维度数据对比与历史趋势分析功能,有助于深入挖掘竞技规律,丰富内容创作素材,增强报道专业性。管理端的数据维护与可视化展示模块,保障了信息的时效性与准确性,优化了体育资讯传播流程。此类专用工具的开发,填补了垂直领域数据服务空白,推动体育产业从单纯资讯播报向深度数据服务转型,促进篮球文化普及与专业分析能力提升,具有显著的社会应用价值与行业参考意义。
1.3 国内外研究现状
1.3.1 国内研究现状
国内体育数据服务领域发展迅速,众多互联网平台及垂直媒体已建立NBA赛事信息库,主要侧重于新闻资讯发布与基础比分直播3。现有系统多采用传统架构,数据呈现形式以静态列表或简单图表为主,缺乏深度关联分析与个性化交互功能。部分商业网站虽拥有庞大数据库,但核心统计指标往往受限付费墙,普通用户难以获取完整历史档案与高阶数据对比。高校及相关研究机构在体育信息化方面有所探索,但成果多集中于理论模型或特定算法验证,落地为完整可操作管理平台的项目较少。当前市场缺少集球员档案管理、实时资讯聚合、用户互动社区及后台可视化监控于一体的综合性开源解决方案。多数现有平台在数据更新机制上存在滞后,且后台管理功能较为单一,难以满足管理员对海量数据进行精细化维护与多维度展示的需求。随着用户对数据深度与交互体验要求提升,基于轻量级框架构建高效、透明且功能完备的专用分析系统,成为国内体育信息化研究的新方向,相关技术实践正逐步从单纯的信息展示向系统化数据治理转变。
1.3.2 国外研究现状
国外体育数据服务起步较早,以NBA官方及ESPN、Bleacher Report为代表的主流平台已构建起成熟的赛事信息生态。这些系统普遍采用微服务架构,支持海量历史数据的实时检索与多维度展示,用户可自由查询球员生涯轨迹、球队战术演变及高阶统计指标。商业数据库如Sports Reference和Basketball-Reference提供极为详尽的档案资料,涵盖从基础得分到复杂效率值的各类参数,成为学术界与媒体界的重要参考源。开源社区中,基于Python或Node.js的数据抓取与分析项目较为活跃,但完整集成前后端管理功能、具备可视化大屏及用户互动模块的Spring Boot架构应用相对少见。多数现有解决方案侧重数据本身的价值挖掘,往往忽略普通用户的交互体验与管理端的运维效率,且部分高级功能依赖昂贵的商业授权。随着全栈开发技术的普及,国外研究者开始关注如何降低体育数据平台构建门槛,探索轻量级框架在垂直领域的应用潜力,力求在保持数据专业性的同时,提升系统灵活性与用户参与度,推动体育信息服务向开放、透明方向演进。
相关技术介绍
2.1 Springboot语言
Spring Boot 是基于 Java 生态的轻量级框架,专为简化企业级应用开发而设计。其核心优势在于"约定优于配置"原则,通过内置依赖管理与插件化架构,开发者无需手动配置复杂的环境参数即可快速构建独立运行的 Web 应用4。在系统中,Spring Boot 作为后端核心框架,整合了 Spring MVC 用于请求路由与控制器设计,结合 Spring Security 实现用户认证与权限分级,确保安全访问5。同时,通过集成 MyBatis 持久层框架,平台实现了对 MySQL 数据库的高效操作。此外,Spring Boot 的自动装配机制简化了第三方服务(如 Redis 缓存、Elasticsearch 搜索)的接入,为系统的高并发访问与实时数据分析提供了技术支撑,有效提升了系统推荐的精准性与用户交互的流畅性6。
2.2 Java语言
Java 作为一种面向对象的跨平台编程语言,凭借其稳定性、安全性和丰富的类库,成为构建大型分布式系统的首选语言。在系统中中,Java 贯穿于后端服务层与业务逻辑层:一方面,通过多线程与集合框架优化资源的批量处理与缓存机制,提升系统响应效率;另一方面,利用 Java 的异常处理与日志记录功能,确保系统在用户高并发访问下的稳定性7。此外,Java 的强类型特性与面向接口编程思想,使得平台代码具有高可维护性与扩展性,便于后续新增模块。结合 Lambda 表达式与 Stream API,Java 进一步简化了数据(如用户行为日志)的流式处理,为数据分析模块提供高效的数据清洗与转换支持,助力平台实现动态评估8。
2.3 Vue技术
Vue 是一套渐进式 JavaScript 框架,专注于构建用户界面的交互体验。在系统中,Vue 通过组件化开发模式,每个组件封装自身的数据逻辑与样式,显著提升了前端代码的可复用性与可维护性。其核心特性------数据绑定与虚拟 DOM,使得用户操作能够实时触发界面更新,无需手动操作 DOM 节点,大幅优化了浏览流畅度。此外,Vue Router 实现单页应用(SPA)的路由管理,支持各个页面的无缝切换;Vuex 状态管理库则集中存储用户登录状态、测试进度等全局数据,确保多组件间的数据一致性。结合 Element UI 等组件库,Vue 快速构建了视觉风格,增强了用户的沉浸式体验9。
系统分析
3.1 可行性分析
3.1.1 技术可行性
Spring Boot简化了企业级应用的开发和部署,提供了开箱即用的配置,使开发者能够专注于实现核心功能而非基础设施的搭建。结合MyBatis与MySQL数据库,系统能高效处理数据存储、检索及管理,确保数据的准确性和一致性。Vue.js在前端提供了一个灵活且响应迅速的用户界面,增强了用户体验。Spring Boot的微服务架构支持模块化开发,便于扩展新功能和维护现有系统。Spring Boot内置的安全特性和社区支持保障了系统的稳定性和安全性。整体技术栈的选择不仅降低了开发难度和技术门槛,还提高了开发效率,系统具备良好的技术可行性和可扩展性,适合长期发展和维护。
3.1.2 经济可行性
本系统经济可行性显著,核心依托Spring Boot等开源技术栈,免除了高昂的软件授权费用。轻量级架构降低了对服务器硬件的要求,有效压缩了部署与运维成本。同时,自动化数据采集机制替代了繁重的人工录入,大幅节省了长期人力开支。整体以低投入实现了高效益,具备极高的推广价值。
3.1.3 操作可行性
本系统操作可行性高,采用直观的B/S架构与简洁的界面设计,用户无需安装额外客户端,通过浏览器即可轻松访问。前端交互逻辑清晰,功能布局符合大众使用习惯,普通用户可快速上手进行数据检索与互动;后台管理模块流程标准化,管理员经简单培训即可掌握数据录入、内容发布及监控操作。系统整体运行稳定,响应迅速,极大地降低了学习与维护门槛,完全满足日常高效运营需求。
3.1.4 社会可行性
本系统社会可行性良好,顺应了体育数字化与大数据应用的时代趋势。平台通过整合分散的NBA赛事数据,为球迷、媒体及研究人员提供了权威、便捷的信息获取渠道,有效满足了公众对深度体育资讯的需求。同时,系统倡导用数据理性解读比赛,有助于营造科学观赛的社会氛围,推动篮球文化的普及与传播。其开发过程严格遵守法律法规与数据伦理,无社会负面影响,具备积极的社会推广价值。
3.2 系统功能需求
NBA数据分析系统包含普通用户和管理员两个角色划分,每个角色对应的主要功能如下:
3.2.1 普通用户主要功能
首页:聚合赛事战报、数据排行及精选资讯,支持全局搜索,快速呈现核心内容。
球员信息:展示球员档案、生涯数据及趋势图,支持按球队、位置等多维度筛选查询。
新闻资讯:分类呈现转会动态、赛场分析及深度评论,支持图文展示与实时更新。
通知公告:列表展示系统维护、活动预告等重要平台动态,确保信息及时触达。
我的账户:提供注册登录、密码修改及个人资料编辑,保障账户安全与个性化设置。
个人中心:
个人首页:定制展示浏览足迹、系统推荐及互动消息汇总。
收藏记录:归档用户标记的球员或新闻,支持一键管理与快速回溯。
点赞记录:集中管理点赞历史,方便回顾认可内容并追踪热度。
评论管理:允许查看、编辑或删除个人评论,维护互动交流环境。
3.2.2 管理员主要功能
后台首页:概览访问量、新增用户及数据状态等关键指标,提供快捷操作入口。
系统用户:管理用户与管理员账号,支持权限分配、状态管控及行为审计。
数据信息管理:负责赛事数据的导入、清洗与维护,确保前端统计准确无误。
球员信息管理:维护球员全生命周期档案,包括资料更新、转会修正及照片上传。
系统管理(轮播图):可视化配置首页轮播内容与跳转链接,灵活引导用户视线。
通知公告管理:支持富文本编辑与定时发布,实现全站通知的起草与精准推送。
资源管理:
新闻资讯:负责稿件的审核、发布、置顶及删除,支持多作者协作。
资讯分类:自定义新闻栏目结构,动态调整分类层级与排序。
数据大屏:通过可视化图表实时展示数据分布与用户趋势,辅助运营决策。
3.3 非功能性需求分析
在NBA数据分析系统的毕业设计中,非功能性需求分析是也是非常重要的。主要关注性能、安全性、易用性、可靠性、可维护性等,这些特性对于确保系统的稳定运行和用户满意度至关重要。
表3-1 非功能性需求分析
| 序号 | 非功能性需求 | 需求要求 |
|---|---|---|
| 1 | 性能 | 平台需具备快速响应能力,确保信息加载与用户交互的流畅性,尤其在多用户并发访问时仍能维持稳定的服务质量,避免因延迟影响系统体验。 |
| 2 | 安全性 | 需构建多层级安全防护体系,包括用户数据加密存储、敏感操作二次验证及访问权限控制,防止信息泄露与非法篡改,保障内容与用户隐私的双重安全。 |
| 3 | 易用性 | 界面设计应保持导航逻辑清晰、操作路径简短,支持用户通过自然语言搜索或分类标签快速定位目标内容,有效降低使用门槛。 |
| 4 | 可靠性 | 需建立自动化故障监测与容灾备份机制,确保系统在硬件故障或网络波动时能够快速恢复服务,避免因中断导致系统受阻或用户数据丢失。 |
| 5 | 可维护性 | 采用模块化架构与标准化代码规范,便于后续新增模块或优化现有功能,同时提供详细的开发文档与日志记录,降低系统升级与问题排查成本。 |
3.4 系统用户用例分析
3.4.1 普通用户例图
NBA数据分析系统中普通用户包含首页、球员信息、新闻资讯、通知公告、我的账户、个人中心(个人首页、收藏记录、点赞记录、评论管理)等功能。普通用户用例图如下图3-1所示:

图3-1 普通用户用例图
3.4.2 管理员用例图
NBA数据分析系统中管理员包含后台首页、系统用户、数据信息管理、球员信息管理、系统管理(轮播图)、通知公告管理、资源管理(新闻资讯、资讯分类)、数据大屏等功能。管理员用例图如下图3-2所示:

图3-2 管理员用例图
3.5 系统业务流程分析
3.5.1 用户操作流程
用户访问流程始于打开首页浏览赛事动态与公告,随后进入球员信息模块检索特定档案或阅读新闻资讯,若需互动则登录账户进行收藏、点赞及评论操作,所有个人交互记录自动同步至个人中心供随时查看与管理。用户操作流程如下图3-3所示。

图3-3用户操作流程图
3.5.2 管理员操作流程
管理员操作流程从后台首页查看系统概览开始,接着进入数据管理与球员信息模块录入或更新核心统计资料,同时在资源管理板块发布新闻资讯并配置轮播图,最后通过数据大屏监控实时指标以完成日常运维与内容调控。管理员操作流程如下图3-4所示。
图3-4管理员操作流程图
系统设计
4.1 系统架构设计
NBA数据分析系统采用了层次结构设计,从上至下依次为用户层、业务逻辑层、数据访问层三层架构。用户层包括普通用户和管理员,业务逻辑层则专注于处理核心业务,主要是注册登录处理、后台信息录入处理等。数据层负责事务控制和数据映射,并利用MySQL和Redis作为基础服务来实现高效的数据存储和访问。整个系统的层级结构清晰明了,各组件之间的相互作用和依赖关系一目了然。系统架构图如下图4-1所示。

图4-1 系统架构图
4.2 功能模块设计
平台架构划分为前台交互与后台管控两大核心区域。前台面向普通用户,首页集成赛事动态概览与热点数据展示,球员信息模块支持多维度检索与详细档案查阅,新闻资讯板块提供最新报道阅读与互动评论功能,通知公告栏发布平台重要消息,个人中心则集中管理账户资料、收藏记录、点赞历史及评论内容。后台专为管理员设计,驾驶舱视图实时呈现系统运行状态与关键统计指标,系统用户管理负责账号审核与权限分配,数据信息与球员信息管理模块保障核心数据库的准确录入与维护,系统管理包含轮播图配置以优化视觉呈现,通知公告与资源管理功能实现资讯发布、分类维护及内容下架操作,数据大屏通过可视化图表直观展示各类统计趋势,辅助运营决策与整体监控。每个角色对应的功能模块如下图4-2所示。

图4-2系统功能结构图
4.3 数据库设计
4.3.1 概念设计
数据库实体设计是数据库构建中的核心环节,旨在对实际业务中涉及的对象及其特征进行抽象和建模,明确系统所需管理的主要信息对象及其相互关联。在该阶段,依据需求分析识别出关键实体,如用户、角色、权限等,并提取其核心属性。设计过程中需注重实体的完整性、规范性与唯一性,确保模型能够准确支撑系统功能,并为后续数据库表结构的建立提供清晰、可靠的依据。整个实体建模应遵循数据库设计的标准化原则,有效避免数据冗余与结构过度复杂。数据库实体E-R图如图4-3所示:

图4-3总体ER图
4.3.2 逻辑设计
通过4.2.1小节NBA数据分析系统中总E-R关系图上大概得出一共需要创建很多个数据表。在此主要罗列几个主要的数据库表结构设计。
表 4-1-access_token(登陆访问时长)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | token_id | int | 是 | 是 | 临时访问牌ID | |
| 2 | token | varchar | 64 | 否 | 否 | 临时访问牌 |
| 3 | info | text | 65535 | 否 | 否 | 信息 |
| 4 | maxage | int | 是 | 否 | 最大寿命:默认2小时 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | user_id | int | 是 | 否 | 用户编号 |
表 4-2-article(文章)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | article_id | mediumint | 是 | 是 | 文章id | |
| 2 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | description | text | 65535 | 否 | 否 | 文章描述 |
| 5 | hits | int | 是 | 否 | 点击数 | |
| 6 | img | varchar | 255 | 否 | 否 | 封面图 |
| 7 | praise_len | int | 是 | 否 | 点赞数 | |
| 8 | source | varchar | 255 | 否 | 否 | 来源 |
| 9 | tag | varchar | 255 | 否 | 否 | 标签 |
| 10 | title | varchar | 125 | 是 | 是 | 标题 |
| 11 | type | varchar | 64 | 是 | 否 | 文章分类 |
| 12 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 13 | url | varchar | 255 | 否 | 否 | 来源地址 |
表 4-3-article_type(文章分类)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | type_id | smallint | 是 | 是 | 分类ID | |
| 2 | display | smallint | 是 | 否 | 显示顺序 | |
| 3 | name | varchar | 16 | 是 | 否 | 分类名称 |
| 4 | father_id | smallint | 是 | 否 | 上级分类ID | |
| 5 | description | varchar | 255 | 否 | 否 | 描述 |
| 6 | icon | text | 65535 | 否 | 否 | 分类图标 |
| 7 | url | varchar | 255 | 否 | 否 | 外链地址 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-4-auth(用户权限管理)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | add | tinyint | 是 | 否 | 是否可增加 | |
| 2 | auth_id | int | 是 | 是 | 授权ID | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | del | tinyint | 是 | 否 | 是否可删除 | |
| 5 | field_add | text | 65535 | 否 | 否 | 添加字段 |
| 6 | field_get | text | 65535 | 否 | 否 | 查询字段 |
| 7 | field_set | text | 65535 | 否 | 否 | 修改字段 |
| 8 | get | tinyint | 是 | 否 | 是否可查看 | |
| 9 | mod_name | varchar | 64 | 否 | 否 | 模块名 |
| 10 | mode | varchar | 32 | 是 | 否 | 跳转方式 |
| 11 | option | text | 65535 | 否 | 否 | 配置 |
| 12 | page_title | varchar | 255 | 否 | 否 | 页面标题 |
| 13 | parent | varchar | 64 | 否 | 否 | 父级菜单 |
| 14 | parent_sort | int | 是 | 否 | 父级菜单排序 | |
| 15 | path | varchar | 255 | 否 | 否 | 路由路径 |
| 16 | position | varchar | 32 | 否 | 否 | 位置 |
| 17 | set | tinyint | 是 | 否 | 是否可修改 | |
| 18 | table_name | varchar | 64 | 否 | 否 | 表名 |
| 19 | table_nav | varchar | 500 | 否 | 否 | 跨表导航 |
| 20 | table_nav_name | varchar | 500 | 否 | 否 | 跨表导航名称 |
| 21 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 22 | user_group | varchar | 64 | 否 | 否 | 用户组 |
表 4-5-code_token(验证码)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | code_token_id | int | 是 | 是 | 验证码ID | |
| 2 | token | varchar | 255 | 否 | 否 | 令牌 |
| 3 | code | varchar | 255 | 否 | 否 | 验证码 |
| 4 | expire_time | timestamp | 是 | 否 | 失效时间 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-6-collect(收藏)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | collect_id | int | 是 | 是 | 收藏ID | |
| 2 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 3 | img | varchar | 255 | 否 | 否 | 封面 |
| 4 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 5 | source_id | int | 是 | 否 | 来源ID | |
| 6 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 7 | title | varchar | 255 | 否 | 否 | 标题 |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 9 | user_id | int | 是 | 是 | 收藏人ID |
表 4-7-comment(评论)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | comment_id | int | 是 | 是 | 评论ID | |
| 2 | user_id | int | 是 | 是 | 评论人ID | |
| 3 | reply_to_id | int | 是 | 否 | 回复评论ID | |
| 4 | content | longtext | 4294967295 | 否 | 否 | 内容 |
| 5 | nickname | varchar | 255 | 否 | 否 | 昵称 |
| 6 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 9 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 10 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 11 | source_id | int | 是 | 否 | 来源ID | |
| 12 | hidden | tinyint | 否 | 否 | 是否隐藏 | |
| 13 | sticky | tinyint | 否 | 否 | 是否置顶 |
表 4-8-data_information(数据信息)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | affiliated_team | text | 65535 | 否 | 否 | 所属球队 |
| 2 | create_by | int | 是 | 否 | 创建用户ID | |
| 3 | create_time | datetime | 是 | 否 | 创建时间 | |
| 4 | data_information_id | int | 是 | 是 | 数据信息ID | |
| 5 | event_score | text | 65535 | 否 | 否 | 赛事得分 |
| 6 | free_throw_percentage | text | 65535 | 否 | 否 | 罚球命中率 |
| 7 | number_of_assists | text | 65535 | 否 | 否 | 助攻次数 |
| 8 | number_of_caps | text | 65535 | 否 | 否 | 盖帽次数 |
| 9 | number_of_matches | text | 65535 | 否 | 否 | 比赛次数 |
| 10 | number_of_steals | text | 65535 | 否 | 否 | 抢断次数 |
| 11 | player_avatar | varchar | 255 | 否 | 否 | 球员头像 |
| 12 | player_information_limit_times | int | 是 | 否 | 展示限制次数 | |
| 13 | player_name | text | 65535 | 否 | 否 | 球员姓名 |
| 14 | player_url | text | 65535 | 否 | 否 | 球员链接 |
| 15 | playing_time | text | 65535 | 否 | 否 | 出场时间 |
| 16 | rebound_points | text | 65535 | 否 | 否 | 篮板得分 |
| 17 | season_name | text | 65535 | 否 | 否 | 赛季名称 |
| 18 | season_rankings | text | 65535 | 否 | 否 | 赛季排名 |
| 19 | shooting_percentage | text | 65535 | 否 | 否 | 投篮命中率 |
| 20 | three_point_percent | text | 65535 | 否 | 否 | 三分命中率 |
| 21 | unique_id | varchar | 64 | 是 | 否 | 唯一ID |
| 22 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-9-hits(用户点击)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | hits_id | int | 是 | 是 | 点赞ID | |
| 2 | user_id | int | 是 | 否 | 点赞人 | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID |
表 4-10-notice(公告)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 2 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 3 | notice_id | mediumint | 是 | 是 | 公告ID | |
| 4 | title | varchar | 125 | 是 | 否 | 标题 |
| 5 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-11-player_information(球员信息)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | player_information_id | int | 是 | 是 | 球员信息ID | |
| 2 | season_name | varchar | 64 | 否 | 否 | 赛季名称 |
| 3 | player_name | varchar | 64 | 否 | 否 | 球员姓名 |
| 4 | season_rankings | varchar | 64 | 否 | 否 | 赛季排名 |
| 5 | affiliated_team | varchar | 64 | 否 | 否 | 所属球队 |
| 6 | number_of_matches | varchar | 64 | 否 | 否 | 比赛次数 |
| 7 | event_date | date | 否 | 否 | 赛事日期 | |
| 8 | event_score | varchar | 64 | 否 | 否 | 赛事得分 |
| 9 | rebound_points | varchar | 64 | 否 | 否 | 篮板得分 |
| 10 | number_of_assists | varchar | 64 | 否 | 否 | 助攻次数 |
| 11 | number_of_steals | varchar | 64 | 否 | 否 | 抢断次数 |
| 12 | number_of_caps | varchar | 64 | 否 | 否 | 盖帽次数 |
| 13 | shooting_percentage | varchar | 64 | 否 | 否 | 投篮命中率 |
| 14 | free_throw_percentage | varchar | 64 | 否 | 否 | 罚球命中率 |
| 15 | player_avatar | varchar | 255 | 否 | 否 | 球员头像 |
| 16 | player_profile | longtext | 4294967295 | 否 | 否 | 球员简介 |
| 17 | hits | int | 是 | 否 | 点击数 | |
| 18 | praise_len | int | 是 | 否 | 点赞数 | |
| 19 | collect_len | int | 是 | 否 | 收藏数 | |
| 20 | comment_len | int | 是 | 否 | 评论数 | |
| 21 | recommend | int | 是 | 否 | 智能推荐 | |
| 22 | create_time | datetime | 是 | 否 | 创建时间 | |
| 23 | create_by | int | 是 | 否 | 创建用户ID | |
| 24 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 25 | extra | text | 65535 | 否 | 否 | 额外信息 |
| 26 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 27 | source_id | int | 否 | 否 | 来源ID | |
| 28 | source_user_id | int | 否 | 否 | 来源用户 |
表 4-12-praise(点赞)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 2 | img | varchar | 255 | 否 | 否 | |
| 3 | praise_id | int | 是 | 是 | 点赞ID | |
| 4 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 5 | source_id | int | 是 | 否 | 来源ID | |
| 6 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 7 | status | tinyint | 是 | 否 | 点赞状态:1为点赞,0已取消 | |
| 8 | title | varchar | 255 | 否 | 否 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 10 | user_id | int | 是 | 是 | 点赞人 |
表 4-13-regular_user(普通用户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | regular_user_id | int | 是 | 是 | 普通用户ID | |
| 2 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 3 | user_phone | varchar | 64 | 否 | 否 | 用户电话 |
| 4 | user_gender | varchar | 64 | 否 | 否 | 用户性别 |
| 5 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 6 | user_id | int | 是 | 否 | 用户ID | |
| 7 | create_time | datetime | 是 | 否 | 创建时间 | |
| 8 | create_by | int | 是 | 否 | 创建用户ID | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-14-slides(轮播图)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | content | varchar | 255 | 否 | 否 | 内容 |
| 2 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 3 | hits | int | 是 | 否 | 点击量 | |
| 4 | img | varchar | 255 | 否 | 否 | 轮播图 |
| 5 | slides_id | int | 是 | 是 | 轮播图ID | |
| 6 | title | varchar | 64 | 否 | 否 | 标题 |
| 7 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 8 | url | varchar | 255 | 否 | 否 | 链接 |
表 4-15-upload(文件上传)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | upload_id | int | 是 | 是 | 上传ID | |
| 2 | name | varchar | 64 | 否 | 否 | 文件名 |
| 3 | path | varchar | 255 | 否 | 否 | 访问路径 |
| 4 | file | varchar | 255 | 否 | 否 | 文件路径 |
| 5 | display | varchar | 255 | 否 | 否 | 显示顺序 |
| 6 | father_id | int | 否 | 否 | 父级ID | |
| 7 | dir | varchar | 255 | 否 | 否 | 文件夹 |
| 8 | type | varchar | 32 | 否 | 否 | 文件类型 |
表 4-16-user(用户账户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|----|-------------|-----------|-----|------|------|------------|------|-------|-------|
| 1 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 2 | create_time | timestamp | | 是 | 否 | 创建时间 |
| 3 | email | varchar | 64 | 否 | 否 | 邮箱 |
| 4 | email_state | smallint | | 是 | 否 | 邮箱认证:(0未认证 | 1审核中 | 2已认证) |
| 5 | login_time | timestamp | | 否 | 否 | 上次登录时间 |
| 6 | nickname | varchar | 16 | 否 | 否 | 昵称 |
| 7 | open_id | varchar | 255 | 否 | 否 | 针对获取用户信息字段 |
| 8 | password | varchar | 64 | 是 | 否 | 密码 |
| 9 | phone | varchar | 11 | 否 | 否 | 手机号码 |
| 10 | phone_state | smallint | | 是 | 否 | 手机认证:(0未认证 | 1审核中 | 2已认证) |
| 11 | state | smallint | | 是 | 否 | 账户状态:(1可用 | 2异常 | 3已冻结 | 4已注销) |
| 12 | user_group | varchar | 32 | 否 | 否 | 所在用户组 |
| 13 | user_id | int | | 是 | 是 | 用户ID |
| 14 | username | varchar | 16 | 是 | 否 | 用户名 |
表 4-17-user_group(用户组)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
|---|---|---|---|---|---|---|
| 1 | group_id | mediumint | 是 | 是 | 用户组ID | |
| 2 | display | smallint | 是 | 否 | 显示顺序 | |
| 3 | name | varchar | 16 | 是 | 否 | 名称 |
| 4 | description | varchar | 255 | 否 | 否 | 描述 |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID | |
| 8 | register | smallint | 否 | 否 | 注册位置 | |
| 9 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 10 | update_time | timestamp | 是 | 否 | 更新时间 |
系统实现
5.1 普通用户主要功能实现
5.1.1 用户注册
用户注册:在首页点击注册,进入注册页面,输入账号、设置密码、确认密码、昵称、邮箱,选择身份信息后输入用户姓名、用户性别、手机号码等信息。点击注册按钮,提示注册成功后,系统将自动跳回首页页面。注册界面如下图5-1所示。

图5-1 注册界面
关键代码:

5.1.2 用户登录
用户登录:在首页点击登录,输入用户名、密码、验证码登录系统,登录时前端会自动校验用户名、密码、验证码是否输入正确,正确则成功登录系统,并跳转回首页页面,输入错误会有相应的提示信息。登录界面如下图5-2所示。

图5-2 登录界面
关键代码:

5.1.3 球员信息
普通用户在球员信息页面浏览球员档案时,可对感兴趣的内容进行点赞表达认可,点击收藏按钮保存至个人记录以便后续查阅,亦可在评论区发表观点或参与讨论,所有操作实时同步至个人中心,形成完整的互动轨迹。球员信息界面如下图5-3所示。

图5-3球员信息界面
5.1.4 新闻资讯
用户在资讯页面浏览资讯信息。通过分类标签筛选资讯类型,点击标题查看详细文章,页面提供评论区供用户交流心得。新闻资讯界面如下图5-4所示。

图5-4新闻资讯界面
关键代码:

5.1.5 通知公告
普通用户可在通知公告板块查阅平台发布的系统维护、数据更新及活动资讯等重要消息,确保第一时间掌握平台最新动态。通知公告主界面如下图5-5所示。

图5-5通知公告界面
5.2 管理员模块主要功能实现
5.2.1 系统用户
管理员可以管理系统上的用户。管理员可以进行用户的增、删、改、查操作,包括设置权限、修改用户信息等。系统用户如下图5-6所示。

图5-6系统用户界面
5.2.2 数据信息管理
管理员在数据信息管理模块中,可通过输入赛季名称并点击"爬取"按钮自动获取最新球员数据,也可手动添加、编辑或删除记录,支持按条件查询与重置操作,确保平台数据实时准确、结构清晰。数据信息管理界面如下图5-7所示。

图5-7数据信息管理界面
5.2.3 系统管理
系统管理:可以查看轮播图详情,以及查询、重置、删除、添加等操作。系统管理界面如下图5-8所示。

图5-8系统管理界面
关键代码:

5.2.4 通知公告管理
管理员可以发布通知公告,管理员还可以编辑、删除或修改已发布的公告,确保公告内容的时效性和准确性。通知公告管理界面如下图5-9所示。

图5-9通知公告管理界面图
关键代码:
5.2.5 资源管理
管理员能够维护和管理所有新闻资讯,支持发布和编辑新的资源信息,可删除和搜索已有的资源信息。并负责审核资源信息。资源管理界面如下图5-10所示。

图5-10资源管理界面图
关键代码:

5.2.6 球员信息管理
管理员在球员信息管理界面,可通过赛季名称或球员姓名快速检索数据,支持查询、重置与批量删除操作;每条记录可查看详情或查看评论,便于精准维护球员档案与互动内容,保障系统数据完整有序。球员信息管理界面如下图5-11所示。

图5-11球员信息管理界面图
5.2.7 数据大屏
管理员在数据大屏可实时查看球员姓名、赛季排名、比赛次数等核心统计,通过词云、折线图、柱状图等多维可视化图表,直观掌握篮板、盖帽、抢断等关键数据趋势,并同步监控球员信息总数、数据总量及用户活跃度,辅助高效决策与系统运营。数据大屏界面如下图5-11所示。

图5-12数据大屏界面图
系统测试
6.1 测试目的
软件测试是通过执行程序来发现缺陷的过程。其核心在于验证软件是否符合需求规格说明书,确保软件在各种条件下都能正常运行。软件测试的目的是为了尽可能的发现系统功能中所存在的缺陷。系统测试是软件生命周期中必不可少的环节之一,它旨在验证整个软件系统是否满足需求规格说明书定义的要求。
6.2 测试方法
本计划执行主要是采用黑盒测试,其中测试过程中运用边界值测试方法、等价类测试方法、场景法、错误推测法等。
黑盒测试:是一种不关注内部代码结构、仅基于输入和输出验证功能是否符合需求的测试方法;
边界值测试方法:是通过选取边界及临近值作为输入来检测系统对极限情况处理能力的测试方法;
等价类测试方法:是将输入数据划分为若干等价类并从中选取代表值进行测试以减少冗余用例的技术;
场景法:模拟用户实际使用流程,设计不同事件流测试场景;
错误推测法:依赖测试人员经验推测易错点(输入框特殊字符处理),错误操作等。
6.3 测试用例
用户登录功能测试:
表6-1用户登录功能测试表
| 测试用例名称/标识 | 测试用例名称/标识 | 普通用户登录系统 | 普通用户登录系统 | 普通用户登录系统 |
|---|---|---|---|---|
| 测试用例描述 | 测试用例描述 | 测试用户通过正确的用户名和密码可否登录功能。 | 测试用户通过正确的用户名和密码可否登录功能。 | 测试用户通过正确的用户名和密码可否登录功能。 |
| 测试方法 | 测试方法 | 黑盒测试 | 黑盒测试 | 黑盒测试 |
| 测试类型 | 测试类型 | 正常类测试 | 正常类测试 | 正常类测试 |
| 前提和约束 (包括初始化要求) | 前提和约束 (包括初始化要求) | 用户已注册。 | 用户已注册。 | 用户已注册。 |
| 测试过程 | 测试过程 | 测试过程 | 测试过程 | 测试过程 |
| 序号 | 输入及操作步骤 | 输入及操作步骤 | 预期结果 | 实际结果 |
| 1 | 1、点击登录按钮进入登录页面; 2、输入正确的用户名和密码,点击确认。 | 1、点击登录按钮进入登录页面; 2、输入正确的用户名和密码,点击确认。 | 1、系统提示"登录成功"; 2、用户直接跳转到系统首页。 | 1、系统提示"登录成功"; 2、用户直接跳转到系统首页。 |
球员信息功能测试:
表6-2球员信息功能测试表
| 测试用例名称/标识 | 测试用例名称/标识 | 球员信息功能测试 | 球员信息功能测试 | 球员信息功能测试 |
|---|---|---|---|---|
| 测试用例描述 | 测试用例描述 | 测试球员信息页面功能。 | 测试球员信息页面功能。 | 测试球员信息页面功能。 |
| 测试方法 | 测试方法 | 黑盒测试 | 黑盒测试 | 黑盒测试 |
| 测试类型 | 测试类型 | 正常类测试 | 正常类测试 | 正常类测试 |
| 前提和约束 (包括初始化要求) | 前提和约束 (包括初始化要求) | 用户已登录。 | 用户已登录。 | 用户已登录。 |
| 测试过程 | 测试过程 | 测试过程 | 测试过程 | 测试过程 |
| 序号 | 输入及操作步骤 | 输入及操作步骤 | 预期结果 | 实际结果 |
| 1 | 1、点击球员信息按钮 | 1、点击球员信息按钮 | 可以浏览球员信息页面 | 可以浏览球员信息页面 |
| 2 | 点击标签页 发表评论 点赞 收藏 | 点击标签页 发表评论 点赞 收藏 | 球员信息支持查看详情、发表评论、点赞、收藏功能 | 球员信息支持查看详情、发表评论、点赞、收藏功能 |
球员信息管理测试:
表6-3球员信息管理测试表
| 测试用例名称/标识 | 测试用例名称/标识 | 球员信息管理测试 | 球员信息管理测试 | 球员信息管理测试 |
|---|---|---|---|---|
| 测试用例描述 | 测试用例描述 | 测试管理员管理球员信息功能。 | 测试管理员管理球员信息功能。 | 测试管理员管理球员信息功能。 |
| 测试方法 | 测试方法 | 黑盒测试 | 黑盒测试 | 黑盒测试 |
| 测试类型 | 测试类型 | 正常类测试 | 正常类测试 | 正常类测试 |
| 前提和约束 (包括初始化要求) | 前提和约束 (包括初始化要求) | 管理员已登录。 | 管理员已登录。 | 管理员已登录。 |
| 测试过程 | 测试过程 | 测试过程 | 测试过程 | 测试过程 |
| 序号 | 输入及操作步骤 | 输入及操作步骤 | 预期结果 | 实际结果 |
| 1 | 1、点击球员信息,点击球员信息添加,点击添加按钮,输入相关球员信息信息 2、点击进行提交。 | 1、点击球员信息,点击球员信息添加,点击添加按钮,输入相关球员信息信息 2、点击进行提交。 | 1、系统提示"添加成功"; 2、列表中显示新的球员信息。 | 1、系统提示"添加成功"; 2、列表中显示新的球员信息。 |
| 2 | 选择一个球员信息点击删除 确认删除 | 选择一个球员信息点击删除 确认删除 | 球员信息删除成功 | 球员信息删除成功 |
| 3 | 选择一个球员信息、点击 详情 修改其中一个球员信息 点击确定 | 选择一个球员信息、点击 详情 修改其中一个球员信息 点击确定 | 球员信息编辑成功 | 球员信息编辑成功 |
球员信息搜索功能测试:
表6-4球员信息搜索功能测试表
| 测试用例名称/标识 | 测试用例名称/标识 | 球员信息搜索功能测试 | 球员信息搜索功能测试 | 球员信息搜索功能测试 |
|---|---|---|---|---|
| 测试用例描述 | 测试用例描述 | 测试球员信息是否能搜索功能。 | 测试球员信息是否能搜索功能。 | 测试球员信息是否能搜索功能。 |
| 测试方法 | 测试方法 | 黑盒测试 | 黑盒测试 | 黑盒测试 |
| 测试类型 | 测试类型 | 正常类测试 | 正常类测试 | 正常类测试 |
| 前提和约束 (包括初始化要求) | 前提和约束 (包括初始化要求) | 用户已登录。 | 用户已登录。 | 用户已登录。 |
| 测试过程 | 测试过程 | 测试过程 | 测试过程 | 测试过程 |
| 序号 | 输入及操作步骤 | 输入及操作步骤 | 预期结果 | 实际结果 |
| 1 | 1、在搜索框输入球员信息名称搜索关键字。 2、点击搜索按钮。 | 1、在搜索框输入球员信息名称搜索关键字。 2、点击搜索按钮。 | 页面显示包含有搜索关键字的球员信息 | 页面显示包含有搜索关键字的球员信息 |
公告信息功能测试:
表6-5公告信息管理功能测试表
| 测试用例名称/标识 | 测试用例名称/标识 | 公告信息管理测试 | 公告信息管理测试 | 公告信息管理测试 |
|---|---|---|---|---|
| 测试用例描述 | 测试用例描述 | 测试公告信息管理功能。 | 测试公告信息管理功能。 | 测试公告信息管理功能。 |
| 测试方法 | 测试方法 | 黑盒测试 | 黑盒测试 | 黑盒测试 |
| 测试类型 | 测试类型 | 正常类测试 | 正常类测试 | 正常类测试 |
| 前提和约束 (包括初始化要求) | 前提和约束 (包括初始化要求) | 管理员已登录。 | 管理员已登录。 | 管理员已登录。 |
| 测试过程 | 测试过程 | 测试过程 | 测试过程 | 测试过程 |
| 序号 | 输入及操作步骤 | 输入及操作步骤 | 预期结果 | 实际结果 |
| 1 | 1、在搜索框输入公告信息名称搜索关键字。 2、点击搜索按钮。 | 1、在搜索框输入公告信息名称搜索关键字。 2、点击搜索按钮。 | 页面显示包含有搜索关键字的公告信息 | 页面显示包含有搜索关键字的公告信息 |
| 2 | 选择一个公告信息点击删除 确认删除 | 选择一个公告信息点击删除 确认删除 | 公告信息删除成功 | 公告信息删除成功 |
| 3 | 选择一个公告信息、点击 详情 修改其中一个公告信息 点击确定 | 选择一个公告信息、点击 详情 修改其中一个公告信息 点击确定 | 公告信息编辑成功 | 公告信息编辑成功 |
| 4 | 1、选择一个公告信息进行审核 | 1、选择一个公告信息进行审核 | 公告信息审核成功 | 公告信息审核成功 |
密码修改功能测试:
表6-6密码修改功能测试表
| 测试用例名称/标识 | 测试用例名称/标识 | 密码修改功能测试 | 密码修改功能测试 | 密码修改功能测试 |
|---|---|---|---|---|
| 测试用例描述 | 测试用例描述 | 测试普通用户密码是否能修改功能 | 测试普通用户密码是否能修改功能 | 测试普通用户密码是否能修改功能 |
| 测试方法 | 测试方法 | 黑盒测试 | 黑盒测试 | 黑盒测试 |
| 测试类型 | 测试类型 | 正常类测试 | 正常类测试 | 正常类测试 |
| 前提和约束 (包括初始化要求) | 前提和约束 (包括初始化要求) | 用户已登录。 | 用户已登录。 | 用户已登录。 |
| 测试过程 | 测试过程 | 测试过程 | 测试过程 | 测试过程 |
| 序号 | 输入及操作步骤 | 输入及操作步骤 | 预期结果 | 实际结果 |
| 1 | 1、普通用户密码修改并完成填写。 2)点击进行提交。 | 1、普通用户密码修改并完成填写。 2)点击进行提交。 | 使用新的密码可以登录 | 使用新的密码可以登录 |
6.4 测试结果
在本次主要测试普通用户登录、修改密码、查看球员信息操作以及管理员添加、删除、修改球员信息、公告信息管理等业务流程操作。验证所有操作都能够正常运行,因此能够保证本次设计的,已实现的功能能够正常运行并且相关数据库的信息也同样保存正确。