基于vue的羽毛球商品推荐系统的设计与实现 毕业设计--附源码00302
摘 要
随着互联网与体育产业的快速发展,羽毛球运动参与人数持续激增,传统体育用品销售模式依赖人工维护与静态展示,难以应对海量商品数据与用户个性化装备需求。现有系统存在数据更新滞后、推荐方式单一(缺乏基于购买历史的深度排序)、用户交互体验不足等问题,无法有效支撑用户对专业羽毛球装备的精准获取与运动知识的即时学习。
本文设计并实现基于Vue的羽毛球商品推荐系统,系统前端采用Vue框架构建响应式用户界面,后端使用Spring Boot框架处理核心业务逻辑,通过大数据爬虫技术采集羽毛球相关信息,和MySQL数据库进行商品、用户行为及订单数据的存储与管理。系统面向普通用户提供注册登录、知识文章阅读、网站公告查看及商城中心服务,其中商城中心设置了首页喜好推荐功能,依据用户历史购买类型进行智能排序;同时提供包括购物车、订单管理、地址维护、优惠券领取、会员购买及个人中心(含配送查询、收藏点赞评论管理)在内的全方位服务;为管理员提供多维度的数据分析看板,涵盖角色权限管理、商品数据增删、轮播图与会员等级配置、新闻公告发布、订单全流程(列表、配送、售后)管控及操作日志审计等功能。该系统通过整合用户行为数据与Spring Boot高效后端架构,实现了从“人找货”到“货找人”的转变,显著提升了羽毛球商品推荐的准确性、平台运营效率与用户购物体验。
关键词:Spring Boot; 推荐系统; 用户偏好; 羽毛球
Abstract
With the rapid development of the internet and sports industry, badminton participation has surged. Traditional sports equipment sales models, which rely on manual maintenance and static displays, struggle to handle massive product data and users 'personalized equipment needs. Existing systems face challenges such as delayed data updates, limited recommendation methods (lacking in-depth sorting based on purchase history), and inadequate user interaction experiences. These limitations prevent effective support for users' precise acquisition of professional badminton equipment and real-time learning of sports knowledge.
This study presents a Vue-based badminton product recommendation system. The frontend utilizes the Vue framework to create a responsive interface, while the backend employs Spring Boot for core business logic. Through big data crawling technology, the system collects badminton-related information and stores product data, user behavior, and order records in a MySQL database. Designed for general users, the system provides registration, knowledge article reading, website announcements, and mall center services. The mall center features a homepage recommendation system that intelligently sorts items based on user purchase history. Comprehensive services include shopping cart management, order processing, address maintenance, coupon redemption, membership purchases, and personal center (with delivery tracking, favorites, likes, and comment management). Administrators access multi-dimensional data dashboards for role permissions, product data management, carousel configurations, news announcements, and full-order lifecycle control (listing, delivery, after-sales). By integrating user behavior data with Spring Boot's efficient backend architecture, the system transforms the traditional "user-to-product" model into a "product-to-user" approach, significantly enhancing recommendation accuracy, platform efficiency, and user shopping experience.
Key words: Spring Boot; Recommendation system; User preference; Badminton
目 录
随着“健康中国”战略的深入实施及后疫情时代大众健康意识的觉醒,羽毛球作为中国参与人数最多的体育运动之一,其市场规模正经历跨越式增长。根据中国国家体育总局和相关市场研究机构的定期报告,中国羽毛球运动人口已高达2.5亿,全民参与度仅次于跑步。2023年我国羽毛球核心市场规模已突破100亿元,并预计在2025年达到320亿元,至2030年有望突破450亿元。庞大的用户基数催生了巨大的装备消费需求,从入门级球拍到专业级球鞋、从消耗型羽毛球到智能穿戴设备,市场呈现出多元化、高频次的消费特征。
尽管羽毛球电商市场发展迅猛,但传统的电商平台多采用静态分类展示或简单的销量排序模式。面对海量的商品数据(如不同材质、重量、平衡点的球拍,不同耐磨度的球鞋等),用户往往陷入“选择困难症”,难以快速匹配符合自身技术水平、打法风格及预算的商品。同时,现有平台缺乏对用户行为数据(如浏览知识文章、查看公告、收藏点赞、购买记录)的深度挖掘,导致推荐结果同质化严重,无法实现“千人千面”的精准服务,造成了流量浪费和用户流失。
当前Web开发技术正向组件化、响应式方向演进,Vue.js凭借其轻量级、高性能和丰富的生态系统,成为构建现代用户界面的主流选择。然而,许多中小型体育电商仍沿用传统单体架构,交互体验较差,且缺乏实时的数据分析与反馈机制[1]。如何利用Vue构建流畅的前端交互,并结合后端数据挖掘技术,设计一套集商品管理、知识科普、会员运营与智能推荐于一体的综合系统,已成为提升羽毛球电商竞争力的关键课题。
本研究将推荐系统理论具体应用于羽毛球这一细分领域,探索基于用户多维行为数据(购买、收藏、评论,文章阅读时长、公告点击、视频观看等)的偏好建模方法。通过研究用户在“知识文章—商城中心—个人中心”全链路的行为轨迹,构建能够反映用户技术等级演变和消费习惯的动态兴趣模型。这不仅丰富了个性化推荐系统在体育电商场景下的应用案例,也为解决冷启动问题和长尾商品推荐提供了新的实证依据。
对于用户而言本系统基于Vue构建的高响应式界面,结合“首页喜好推荐”功能,能够根据用户历史购买类型和实时行为智能排序商品,大幅降低检索成本,帮助用户快速找到适配的球拍、球鞋及配件。同时,集成的“知识文章”与“网站公告”模块,实现了从“单纯购物”到“技能学习+装备升级”的一站式服务,增强了用户的粘性与满意度[2]。
对于商家与管理者而言系统提供的“数据分析”与“操作日志”功能,能够可视化呈现商品销售分布、优惠券使用趋势、会员等级分布及订单配送状态等关键指标。管理者可据此进行精准的选品决策、库存优化及营销策略调整(如针对特定会员等级推送专属优惠)。此外,“角色管理”与“权限管理”模块确保了平台数据的安全性与运营的规范性,推动了传统体育电商向数字化、智能化、数据驱动的运营模式转型,具有显著的经济效益和推广价值。
中国体育用品产业的信息服务与推荐系统发展深受互联网普及与移动电商浪潮的推动。早期阶段,国内体育商品平台多以综合电商的附属频道或简单的信息门户形式存在,功能集中于羽毛球装备的静态展示与基础搜索。随着全民健身战略的实施与用户消费能力的提升,单纯的商品罗列已无法满足爱好者对专业指导与个性化装备的需求,平台开始引入基础的分类筛选与销量排序功能[3]。此时的系统在理解用户运动水平、偏好风格与动态需求方面能力薄弱,推荐逻辑多依赖于人工编辑的“热销榜”或简单的价格区间过滤,缺乏真正的个性化。数据驱动的理念尚未贯穿于服务流程中,用户与专业装备之间的连接效率较低[4]。这一时期的代表性平台如早期的体育垂直资讯网,其核心价值在于汇集了大量的赛事新闻与基础装备参数,构建了初代的爱好者社区雏形,但其信息呈现方式依然是标准化的,未能为每个用户提供独特的装备推荐流。
近年来,国内大型科技公司与垂直体育电商开始将推荐系统技术广泛应用于其生态中,显著提升了体育商品分发与运营的精准度。京东体育与得物APP是这一领域的典型代表。其旗下的体育装备板块,不仅整合了商品商店、社区种草与直播导购功能,更关键的是接入了强大的后台数据分析和推荐引擎。该系统深度整合了用户的浏览轨迹、购买历史、尺码偏好以及在社区内的互动行为,构建了复杂的用户画像[5]。这些平台能够为羽毛球爱好者进行个性化的球拍、球鞋推荐,匹配同水平的球友社区话题,推送感兴趣的赛事周边与训练教程,甚至动态调整促销活动,形成了一个高度闭环的个性化体育服务体验。另一个实例是Keep等运动健康APP,其通过建立“运动社区”与“商城”的联动,积极打通用户运动数据与商品消费,利用用户在社区内的内容消费与打卡行为,反哺装备推荐、课程搭配与官方活动推送,实现了从“运动场景”到“消费场景”的用户服务延伸[6]。这些实践表明,国内领先的体育平台正致力于构建一个以用户数据为核心,深度融合社交、内容与商品运营的一体化服务平台。
在全球范围内,体育装备推荐与服务系统的演进与机器学习、大数据技术的成熟紧密相连,并较早地由大型综合电商平台与专业垂直网站主导实践。Amazon(亚马逊)是这一领域的先驱与全球典范。Amazon最初仅作为在线书店,后逐步演变为全球最大的综合性电商平台,其体育用品板块的推荐系统根植于海量的用户行为数据与多维度的算法模型[7]。Amazon不仅追踪用户的购买与浏览记录,还深度分析用户的愿望单、商品对比行为、社区问答、详细评测以及退货原因。基于这些数据,Amazon的推荐引擎能够生成高度个性化的商品首页,包括“为您推荐”、“经常一起购买”和基于协同过滤的“看过此商品的人也看了”等模块。其独特的“属性标签”系统,允许用户和社区为商品标注如“适合初学者”、“进攻型”、“轻量化”等关键词,这不仅丰富了商品描述的维度,也为基于内容的推荐提供了强大的语义基础,使得系统能够将拥有相似技术特点偏好但未曾接触过该品牌的用户连接起来[8]。
除Amazon外,其他国际巨头也在通过不同的路径深化体育装备推荐与服务平台的建设。Decathlon(迪卡侬)通过其全渠道零售模式,构建了一种基于“运动项目”与“技能等级”的推荐逻辑。该系统不仅分析用户的购买历史,更侧重于通过线上问卷与线下门店数据收集用户的运动频率、技术水平与身体数据[9]。其推荐逻辑结合了用户对运动类型的显性偏好设置与隐性的复购周期、配件搭配等行为,动态调整推荐列表,提供从入门到专业的全套装备方案,提高用户粘性与客单价[10]。Specialized(闪电)等专业品牌官网虽然规模相对较小,但其通过建立专业的Fit几何拟合系统与社区论坛,尝试通过独占的技术数据与用户骑行/运动数据打通来构建其推荐系统的独特性,将生物力学数据与商品分发端的用户偏好进行关联分析[11]。这些国际平台的实践凸显了当前行业的前沿趋势:推荐系统已从单纯的“销售工具”演进为“专业服务平台的核心组件”,它深度整合了商店、社区、专业测评与数据分析工具,形成了一个持续学习、动态优化的用户互动生态,其目标是最大化用户的运动体验与平台参与度[12]。
本系统主要研究基于用户行为数据分析的羽毛球商品偏好建模与个性化推荐服务实现。系统构建一个集羽毛球商品信息管理、运动知识科普、商城交易与会员运营于一体的综合平台,研究内容包括设计并实现用户浏览、收藏、点赞、评论及购买等多维行为数据的采集与处理流程,建立能够精准反映用户运动装备兴趣倾向的偏好模型。通过分析用户在知识文章阅读、公告查看、商品搜索、购物车操作及订单完成等全链路的行为轨迹,研究其内在关联性与消费规律,特别是针对用户购买后的商品类型进行深度挖掘以优化首页喜好推荐排序。在此基础上,系统为前端普通用户提供个性化的羽毛球商品推荐、会员权益管理及全方位的订单售后服务,提升购物效率与用户体验。同时,为平台管理员提供多维度的数据可视化分析功能,涵盖商品销售分布、订单配送状态、优惠劵使用趋势、用户活跃度及操作日志审计等关键指标,支持其进行精准的商品选品决策、会员等级策略制定与高效的平台运营管理。本研究探索一种数据驱动的垂直领域电商服务平台运营模式,实现从传统单向商品展示向双向互动、精准营销与智能化服务的转型。
SpringBoot框架是基于Spring框架的开源项目,简化Java应用程序的开发过程。SpringBoot通过约定优于配置的理念,减少了传统Spring应用的繁琐配置,开发者可以快速搭建和部署应用程序。框架提供了一系列默认配置,支持自动化配置,简化了应用启动的复杂性。SpringBoot内置了嵌入式Web服务器,使得开发者能够独立运行Java应用,无需外部容器[13]。
SpringBoot支持微服务架构,开发者可以轻松创建和管理多个微服务。框架集成了丰富的功能模块,包括安全、数据访问和消息中间件等,支持RESTful API和JSON数据格式的处理。SpringBoot还提供了强大的监控和管理功能,允许开发者实时监控应用的健康状态和性能指标。借助SpringBoot,开发者能够高效构建和维护现代企业级应用,满足复杂业务需求。
Vue.js 是一套用于构建用户界面的渐进式JavaScript框架。它的核心库只关注视图层,采用自底向上增量开发的设计[12]。Vue.js 的核心思想是数据驱动和组件化。在数据驱动方面,Vue.js 通过实现一个响应式系统来建立数据与视图的绑定关系。当数据发生变化时,视图会自动更新,这被称为响应式原理。Vue.js 使用基于依赖追踪的观察系统,在getter中收集依赖,在setter中触发更新。这种机制使得开发者无需直接操作DOM,只需关注数据状态的变化。在组件化方面,Vue.js 允许开发者将界面拆分为独立可复用的组件,每个组件包含自己的模板、逻辑和样式。组件之间通过props向下传递数据,通过事件向上传递消息,形成清晰的父子组件通信模式[14]。
Vue.js 提供了一套完整的生态系统,包括路由管理、状态管理和构建工具等。Vue Router 是官方提供的路由管理器,支持嵌套路由、模块化的基于组件的路由配置。Vuex 是一个专为Vue.js应用程序开发的状态管理模式,采用集中式存储管理应用的所有组件的状态。对于大型单页应用,Vue.js 提供了Vue CLI脚手架工具,可以帮助快速搭建项目结构,集成现代前端开发工作流。Vue.js 使用基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层Vue实例的数据。在编译阶段,Vue.js 会将模板编译成渲染函数,这个渲染函数会返回一个虚拟DOM树。当状态变化时,Vue.js 会重新执行渲染函数生成新的虚拟DOM树,并通过diff算法比较新旧虚拟DOM树的差异,最终将变化应用到真实DOM上。
网络爬虫是一种自动获取网页内容的程序,它通过HTTP协议访问互联网资源,并按照特定规则提取和存储所需信息。爬虫的基本工作流程包括URL调度、网页下载、内容解析和数据存储四个主要环节。在URL调度阶段,爬虫维护一个待抓取URL队列,通过广度优先或深度优先等策略确定访问顺序。为了避免重复抓取和循环抓取,爬虫需要记录已访问的URL。网页下载环节通过HTTP客户端向目标服务器发送请求,获取网页的HTML源码。这个过程需要考虑用户代理设置、请求头处理、Cookie管理、会话维持等技术细节,以模拟真实浏览器的行为[15]。
在内容解析阶段,爬虫使用HTML解析器对下载的网页进行结构化处理。常用的解析技术包括正则表达式、XPath和CSS选择器等。这些技术可以帮助定位和提取网页中的特定元素,如文本内容、链接、图片等。现代爬虫框架通常提供基于DOM树的解析能力,能够更精确地提取目标数据。对于动态加载的内容,爬虫可能需要执行JavaScript代码,这通常通过集成浏览器引擎来实现。数据存储环节将提取的信息保存到数据库或文件中,常见的存储格式包括JSON、CSV和关系型数据库表。在整个爬虫过程中,还需要考虑访问频率控制、robots协议遵守、反爬虫机制应对等伦理和法律问题,确保爬虫行为的合规性和可持续性。
MySQL是一种开源的关系型数据库管理系统,使用结构化查询语言(SQL)进行数据管理[16]。它采用客户端/服务器架构,支持多用户并发访问。MySQL的数据存储结构基于表、行和列的概念。表是数据的集合,每个表由多个列组成,每列具有特定的数据类型。行代表表中的单个记录。MySQL支持多种存储引擎,包括InnoDB、MyISAM等,不同的存储引擎提供不同的事务处理能力、锁定机制和性能特性。InnoDB是MySQL的默认存储引擎,支持ACID事务、行级锁定和外键约束。它使用聚簇索引来组织数据存储,主键索引的叶节点直接包含行数据。
MySQL提供完整的事务支持,包括事务的原子性、一致性、隔离性和持久性。它支持四种事务隔离级别:读未提交、读已提交、可重复读和串行化。在并发控制方面,MySQL使用多版本并发控制(MVCC)机制来处理读-写冲突。MySQL的索引机制包括B树索引、哈希索引和全文索引等。B树索引是MySQL中最常用的索引类型,支持范围查询和排序操作[17]。MySQL的查询优化器会分析SQL语句,选择最有效的执行计划。它支持连接查询、子查询、联合查询等多种查询方式。MySQL还提供存储过程、触发器、视图等高级功能,支持数据的备份与恢复、主从复制和集群部署,能够满足不同规模应用的数据存储需求。
本系统可行性分析基于技术、操作、社会与经济四个维度展开论证。
技术可行性层面,系统采用Vue.js与SpringBoot构建前后端应用,两项技术具备成熟的开发范式与社区支持。Vue.js的组件化架构支持复杂用户界面的高效开发与维护。SpringBoot框架提供完整的B/S结构实现,其内置的ORM机制简化数据库操作,Admin后台模块降低管理功能开发门槛。MySQL作为关系型数据库满足结构化数据存储与事务处理需求。网络爬虫技术能够从公开渠道采集羽毛球商品行业数据。这些技术组合经过大量商业项目验证,技术风险可控,能够支撑系统各项功能的实现。
操作可行性层面,系统界面设计遵循用户习惯。普通用户通过浏览器访问系统,操作流程线性清晰,涵盖信息浏览、加入购物车与会员购买等核心场景。管理员通过可视化数据看板掌握运营态势,通过功能模块进行内容管理。系统交互逻辑符合常见Web应用模式,用户无需接受专业培训即可使用。后台管理功能集中配置,降低了日常运维的复杂度。这种设计使得系统能够被目标用户群体快速接纳并投入实际使用。
社会可行性层面,系统建设契合全民健身战略与体育产业数字化转型的趋势。通过搭建规范的羽毛球商品销售与知识科普平台,系统不仅解决了消费者在海量装备中“选品难”的痛点,还通过“知识文章”与“网站公告”模块传播科学运动理念,有助于构建健康、专业的羽毛球运动社区。基于用户行为的个性化推荐机制,能够引导用户理性消费,提升运动装备的匹配度与使用率。同时,系统在设计与实施过程中将严格遵守《网络安全法》等相关法律法规,对用户隐私数据(如地址、购买记录)进行加密保护,确保技术应用符合社会伦理规范,具有良好的社会效益。
经济可行性层面,系统开发采用开源技术栈,显著降低了软件许可成本。硬件基础设施可通过云服务按需配置,避免初期过度投入。系统上线后能够帮助运营方减少人工管理成本,提高运营决策效率,通过增强用户粘性间接提升商业价值。系统的模块化设计支持功能渐进式迭代,便于根据业务发展灵活调整资源分配。投入产出分析表明,系统建设与维护成本在可控范围内,其带来的运营优化效益与潜在商业价值能够支撑项目的经济合理性。
用户可查看羽毛球商品详细信息列表与内容(包括规格、价格及基于购买历史的喜好推荐)。用户可浏览平台发布的网站公告与运动知识文章。用户访问商城中心查看可用优惠券并管理购物车。用户进入个人中心查看订单配送状态、管理收藏记录、点赞记录及评论信息。用户用例图如图3-1所示。

图3-1 用户用例图
管理员查看主页数据可视化图表,包括商品分类占比饼状图、会员等级分布柱状图、订单销量与售后数量对比柱状图、优惠券使用类型占比与知识文章阅读热度占比。管理员对系统内羽毛球商品数据进行增删改查管理。管理员负责网站公告的创建、发布与维护以及轮播图的配置。管理员审核与管理用户订单(含列表查询、配送状态更新及售后处理)并统计操作日志。管理员管理商城中心的分类信息、优惠劵发放规则以及新闻(知识文章)的分类与内容。管理员用例图如图3-2所示。

图3-2 管理员用例图
本系统为羽毛球运动爱好者与管理员提供综合性服务平台。用户端支持羽毛球商品及知识信息浏览,涵盖商品详情、规格参数、用户评价及基于购买历史的个性化推荐内容;提供网站公告查看与知识文章阅读功能;设有商城中心,用户可管理购物车、领取并使用优惠券、完成订单支付及购买会员服务;集成个人中心模块,便于用户查询订单配送状态、管理收藏记录、点赞记录及评论信息。管理员端具备数据可视化能力,以图表展示商品分类占比、会员等级分布、订单销量与售后数量对比,统计优惠券使用及文章阅读热度分布。管理员拥有商品数据管理权限,负责商品信息的增删改查、网站公告与轮播图的创建维护、新闻(知识文章)的分类管理;全面管理商城中心的分类设置、优惠券发放规则,并负责订单列表查询、配送状态更新、售后处理流程及系统操作日志审计,同时通过角色管理与权限控制保障系统安全运行。
vue的羽毛球商品推荐系统采用SpringBoot框架开发,整体架构分为VIEW层、Controller层、Service层、DAO层和持久化数据存储层。VIEW层支持电脑浏览器和移动设备访问系统,采用响应式设计确保良好的用户体验。VIEW层与Controller层紧密结合,共同完成前台页面的数据展示和用户交互;Controller层作为控制层,负责接收前端请求参数并进行业务分发,返回指定的视图或数据;Service层为业务逻辑层,处理核心业务逻辑,包括用户偏好分析、推荐算法计算、积分管理等;DAO层负责数据访问操作,封装对数据库的增删改查操作;持久化层采用MySQL数据库进行数据存储,通过Apache Spark进行分布式数据处理和分析。系统架构如图4-1所示。

图4-1 系统架构图
用户进入网站公告信息查看页面后,可通过网站公告名称关键词进行搜索查询。系统根据用户输入条件从数据库检索匹配的网站公告信息,以卡片列表形式展示网站公告基本信息。用户点击具体网站公告卡片可查看详细描述、收藏、点赞等完整信息,并可执行收藏、点赞、评论等操作。网站公告信息查看流程如图4-2所示。

图4-2网站公告信息查看流程图
用户浏览商品中心列表页面,系统按用户购买后的类型而排序展示所有可购买商品的基本信息。用户选择感兴趣的商品后查看详细内容,包括单价、数量、商品描述和商品名称等。系统验证用户是否符合会员购买,符合条件者可使用会员购买,系统记录购买订单。商品购买流程如图4-3所示。

图4-3商品购买流程图
用户进入知识文章页面浏览文章列表,可通过关键词搜索或按分类筛选目标文章。点击文章标题查看完整内容及所有回复,登录用户可对文章进行点赞、收藏操作。在回复框输入内容后提交,系统验证内容合法性后发布回复,实时更新文章互动数据。论坛交流流程如图4-4所示。

图4-4知识文章浏览流程图
管理员登录系统后进入数据看板页面,系统自动从数据库统计各维度数据。管理员可选择查看不同图表类型,包括商品销售数据统计柱状图对比图、商品销售金额统计对比图等。系统根据选择实时渲染对应图表,支持图表交互和数据钻取。数据可视化查看流程如图4-5所示。

图4-5数据可视化查看流程图
基于Vue的羽毛球商品推荐系统构建了完整的用户服务与管理体系。用户端提供羽毛球商品浏览、个性化喜好推荐、商城购物(含购物车、优惠券及会员购买)和知识文章阅读四大功能模块,形成从“看、选、买”到“学”的完整用户体验闭环。管理员端具备数据看板可视化功能,实时展示商品分类占比、订单销量对比等关键指标,同时提供商品数据、网站公告、订单售后、新闻内容及系统日志的全生命周期管理。系统采用Java语言结合Spring Boot后端与Vue前端架构,利用MySQL数据库保障数据事务一致性,并通过网络爬虫技术持续采集公开渠道的羽毛球装备与行业资讯数据,为个性化推荐算法和运营决策提供坚实的数据支撑,实现用户运动装备需求与平台精准服务的无缝对接。系统功能结构图如图4-6所示。

图4-6系统功能结构图
在进行数据库设计时,概念设计帮助明确系统的整体结构和需求。在这一阶段,需要确定实体、属性以及它们之间的关系,为后续的数据库表设计奠定基础。接下来,将深入探讨数据库表设计的具体细节,实现更高效的数据存储和管理。
概念设计是数据库设计的第一步,其主要目标是对系统的数据需求进行全面的理解和抽象[18]。在这一阶段,通过建立实体-关系模型(ER模型)来识别系统中的关键实体、属性及其相互关系。概念设计的输出是一个清晰的ER图,作为后续数据库表设计的基础。以下将展示系统的全局E-R图以及各个实体的属性图[19]。订单
该系统ER图清晰展示了用户账户与普通用户、商品购买、知识文章发布及评论之间的核心关系。羽毛球商品信息与用户评价、网站公告与阅读记录、Y商城中心(含购物车、优惠券)与订单交易之间形成重要关联。系统通过商品分类、新闻分类和会员等级实现分类管理,普通用户可进行商品下单与会员购买,构建了完整的用户交互与业务逻辑体系。系统全局E-R图如图4-7所示。

图4-7系统E-R图
收货地址实体包含收货地址、姓名、手机、邮编、地址、用户ID、创建时间、更新时间等属性,其中收货地址是主键,实体属性图如图4-8所示。

图4-8收货地址实体图
文章实体包含文章id、正文、创建时间、文章描述、点击数、封面图、点赞数、来源、标签、标题、文章分类、更新时间等属性,其中文章id是主键,实体属性图如图4-9所示。

图4-9文章实体图
购物车实体包含购物车ID、标题、图片、用户ID、创建时间、更新时间、单价、原价、总价、数量、商品id、商品分类、描述、规格等属性,其中购物车id是主键,实体属性图如图4-10所示。

图4-10购物车实体图
收藏实体包含收藏id、收藏人id、来源表、来源字段、来源id、标题、封面、创建时间、更新时间等属性,其中收藏id是主键,实体属性图如图4-11所示。

图4-12 收藏实体图
商品信息实体包含正文、创建时间、描述、产品ID、点击量、封面图、积分、商品库存、卖价、原价、销量、标题、商品分类、更新时间等属性,其中产品id是主键,实体属性图如图4-13所示。

图4-13 商品信息实体图
普通用户实体包含普通用户id、用户年龄、可见会员、用户性别、用户姓名等属性,其中普通用户id是主键,实体属性图如图4-14所示。

图4-14普通用户实体图
管理员实体包含管理员id、用户头像、登录密码、手机号码、账户状态等属性,其中管理员id是主键,实体属性图如图4-15所示。

图4-15管理员实体图
这一阶段的重点是将概念模型转换为实际的数据库结构,包括表的创建、字段的定义及数据类型的选择。每个实体通常对应于数据库中的一张表,而实体的属性则转化为表的列[20]。以下是系统的数据库表设计展示。
活动参与表主要是用来记录用户参与商品活动的详细信息。主要包括活动地点、活动时间、活动标题、活动类型等。活动参与表如表4-1所示。
表 4-1-access_token(登陆访问时长)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
2 |
info |
text |
65535 |
否 |
否 |
信息 |
|
3 |
maxage |
int |
是 |
否 |
最大寿命:默认2小时 |
|
|
4 |
token |
varchar |
64 |
否 |
否 |
临时访问牌 |
|
5 |
token_id |
int |
是 |
是 |
临时访问牌ID |
|
|
6 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
7 |
user_id |
int |
是 |
否 |
用户编号 |
表 4-2-address(收货地址)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
address_id |
int |
是 |
是 |
收货地址 |
|
|
2 |
name |
varchar |
32 |
否 |
否 |
姓名 |
|
3 |
phone |
varchar |
13 |
否 |
否 |
手机 |
|
4 |
postcode |
varchar |
8 |
否 |
否 |
邮编 |
|
5 |
address |
varchar |
255 |
是 |
否 |
地址 |
|
6 |
user_id |
mediumint |
是 |
否 |
用户ID |
|
|
7 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
8 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
9 |
default |
tinyint |
是 |
否 |
默认判断 |
表 4-3-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-4-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-5-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-6-cart(购物车)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
cart_id |
int |
是 |
是 |
购物车ID |
|
|
2 |
title |
varchar |
64 |
否 |
否 |
标题 |
|
3 |
img |
varchar |
255 |
是 |
否 |
图片 |
|
4 |
user_id |
int |
是 |
否 |
用户ID |
|
|
5 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
6 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
7 |
state |
int |
是 |
否 |
状态:使用中,已失效 |
|
|
8 |
price |
double |
是 |
否 |
单价 |
|
|
9 |
price_ago |
double |
是 |
否 |
原价 |
|
|
10 |
price_count |
double |
是 |
否 |
总价 |
|
|
11 |
num |
int |
是 |
否 |
数量 |
|
|
12 |
goods_id |
mediumint |
是 |
是 |
商品id |
|
|
13 |
type |
varchar |
64 |
是 |
否 |
商品分类 |
|
14 |
description |
varchar |
255 |
否 |
否 |
描述 |
|
15 |
norms |
varchar |
64 |
否 |
否 |
规格 |
表 4-7-code_token(验证码)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
code |
varchar |
255 |
否 |
否 |
验证码 |
|
2 |
code_token_id |
int |
是 |
是 |
验证码ID |
|
|
3 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
4 |
expire_time |
timestamp |
是 |
否 |
失效时间 |
|
|
5 |
token |
varchar |
255 |
否 |
否 |
令牌 |
|
6 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-8-collect(收藏)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
collect_id |
int |
是 |
是 |
收藏ID |
|
|
2 |
user_id |
int |
是 |
是 |
收藏人ID |
|
|
3 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
4 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
5 |
source_id |
int |
是 |
否 |
来源ID |
|
|
6 |
title |
varchar |
255 |
否 |
否 |
标题 |
|
7 |
img |
varchar |
255 |
否 |
否 |
封面 |
|
8 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
9 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-9-comment(评论)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
avatar |
varchar |
255 |
否 |
否 |
头像地址 |
|
2 |
comment_id |
int |
是 |
是 |
评论ID |
|
|
3 |
content |
longtext |
4294967295 |
否 |
否 |
内容 |
|
4 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
5 |
hidden |
tinyint |
否 |
否 |
是否隐藏 |
|
|
6 |
nickname |
varchar |
255 |
否 |
否 |
昵称 |
|
7 |
reply_to_id |
int |
是 |
否 |
回复评论ID |
|
|
8 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
9 |
source_id |
int |
是 |
否 |
来源ID |
|
|
10 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
11 |
sticky |
tinyint |
否 |
否 |
是否置顶 |
|
|
12 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
13 |
user_id |
int |
是 |
是 |
评论人ID |
表 4-10-commodity_data(商品数据)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
commodity_data_id |
int |
是 |
是 |
商品数据ID |
|
|
2 |
name_of_commodity |
text |
65535 |
否 |
否 |
商品名称 |
|
3 |
commodity_picture |
varchar |
255 |
否 |
否 |
商品图片 |
|
4 |
key_words |
text |
65535 |
否 |
否 |
关键词语 |
|
5 |
shop_name |
text |
65535 |
否 |
否 |
店铺名称 |
|
6 |
commodity_price |
text |
65535 |
否 |
否 |
商品价格 |
|
7 |
sales_quantity |
text |
65535 |
否 |
否 |
销售数量 |
|
8 |
unique_id |
varchar |
64 |
是 |
否 |
唯一ID |
|
9 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
10 |
create_by |
int |
是 |
否 |
创建用户ID |
|
|
11 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-11-coupon(优惠券)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
coupon_id |
int |
是 |
是 |
优惠券ID |
|
|
2 |
coupon_name |
varchar |
255 |
否 |
否 |
优惠券名称 |
|
3 |
coupon_price |
int |
否 |
否 |
优惠券价格 |
|
|
4 |
coupon_price1 |
int |
否 |
否 |
优惠券券后价格 |
|
|
5 |
coupon_time |
varchar |
255 |
否 |
否 |
优惠券时间 |
|
6 |
coupon_type |
varchar |
255 |
否 |
否 |
优惠券类型 |
|
7 |
coupon_user_auth |
varchar |
255 |
否 |
否 |
优惠券用户 |
|
8 |
coupon_user_id |
int |
否 |
否 |
优惠券用户ID |
|
|
9 |
create_time |
timestamp |
否 |
否 |
创建时间 |
|
|
10 |
update_time |
timestamp |
否 |
否 |
更新时间 |
表 4-12-coupon_user(用户优惠券)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
id |
int |
是 |
是 |
用户优惠券ID |
|
|
2 |
user_id |
int |
否 |
否 |
用户ID |
|
|
3 |
coupon_id |
int |
否 |
否 |
优惠券ID |
|
|
4 |
is_use |
int |
否 |
否 |
是否使用 |
|
|
5 |
coupon_user_id |
int |
否 |
否 |
用户优惠券ID |
|
|
6 |
create_time |
datetime |
否 |
否 |
创建时间 |
|
|
7 |
update_time |
timestamp |
否 |
否 |
更新时间 |
表 4-13-goods(商品信息)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
content |
longtext |
4294967295 |
否 |
否 |
正文 |
|
2 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
3 |
customize_field |
text |
65535 |
否 |
否 |
自定义字段 |
|
4 |
description |
varchar |
255 |
否 |
否 |
描述 |
|
5 |
goods_id |
mediumint |
是 |
是 |
产品ID |
|
|
6 |
hits |
int |
是 |
否 |
点击量 |
|
|
7 |
img |
text |
65535 |
否 |
否 |
封面图:用于显示于产品列表页 |
|
8 |
img_1 |
text |
65535 |
否 |
否 |
主图1 |
|
9 |
img_2 |
text |
65535 |
否 |
否 |
主图2 |
|
10 |
img_3 |
text |
65535 |
否 |
否 |
主图3 |
|
11 |
img_4 |
text |
65535 |
否 |
否 |
主图4 |
|
12 |
img_5 |
text |
65535 |
否 |
否 |
主图5 |
|
13 |
integral |
int |
否 |
否 |
积分 |
|
|
14 |
inventory |
int |
是 |
否 |
商品库存 |
|
|
15 |
list_status |
smallint |
否 |
否 |
上架状态(0:下架;1上架) |
|
|
16 |
price |
double |
是 |
否 |
卖价 |
|
|
17 |
price_ago |
double |
是 |
否 |
原价 |
|
|
18 |
sales |
int |
是 |
否 |
销量 |
|
|
19 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
20 |
source_id |
int |
是 |
否 |
来源ID |
|
|
21 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
22 |
title |
varchar |
125 |
否 |
否 |
标题 |
|
23 |
type |
varchar |
64 |
是 |
否 |
商品分类 |
|
24 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
25 |
user_id |
int |
否 |
否 |
添加人 |
表 4-14-goods_type(商品类型)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
type_id |
int |
是 |
是 |
商品分类ID |
|
|
2 |
father_id |
smallint |
是 |
否 |
上级分类ID |
|
|
3 |
name |
varchar |
255 |
否 |
否 |
商品名称 |
|
4 |
desc |
varchar |
255 |
否 |
否 |
描述 |
|
5 |
icon |
varchar |
255 |
否 |
否 |
图标 |
|
6 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
7 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
8 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
9 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-15-hits(用户点击)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
2 |
hits_id |
int |
是 |
是 |
点赞ID |
|
|
3 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
4 |
source_id |
int |
是 |
否 |
来源ID |
|
|
5 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
6 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
7 |
user_id |
int |
是 |
否 |
点赞人 |
表 4-16-logistics_delivery(物流配送)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
logistics_delivery_id |
int |
是 |
是 |
物流配送ID |
|
|
2 |
order_number |
varchar |
64 |
否 |
否 |
订单号 |
|
3 |
product_name |
varchar |
64 |
否 |
否 |
商品名称 |
|
4 |
purchase_quantity |
varchar |
64 |
否 |
否 |
购买数量 |
|
5 |
total_transaction_amount |
double |
否 |
否 |
交易总额 |
|
|
6 |
the_date_of_issuance |
date |
否 |
否 |
发货日期 |
|
|
7 |
delivery_number |
varchar |
30 |
否 |
否 |
配送订单 |
|
8 |
ordinary_users |
int |
否 |
否 |
普通用户 |
|
|
9 |
shipping_address |
varchar |
64 |
否 |
否 |
收货地址 |
|
10 |
delivery_status |
varchar |
64 |
否 |
否 |
配送状态 |
|
11 |
signing_status |
varchar |
64 |
否 |
否 |
签收状态 |
|
12 |
recommend |
int |
是 |
否 |
智能推荐 |
|
|
13 |
contact_name |
varchar |
255 |
否 |
否 |
联系人名字 |
|
14 |
merchant_id |
int |
否 |
否 |
商家id |
|
|
15 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
16 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
17 |
courier_type |
int |
是 |
否 |
配送方式(1:商家配送,2:其他配送) |
|
|
18 |
courier_id |
int |
否 |
否 |
配送员ID |
|
|
19 |
courier_name |
varchar |
255 |
否 |
否 |
配送员名字 |
|
20 |
courier_detail |
longtext |
4294967295 |
否 |
否 |
配送详情 |
表 4-17-mall_center(商城中心)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
cart_content |
longtext |
4294967295 |
否 |
否 |
正文 |
|
2 |
cart_description |
varchar |
255 |
否 |
否 |
描述 |
|
3 |
cart_img |
text |
65535 |
否 |
否 |
封面图 |
|
4 |
cart_img_1 |
text |
65535 |
否 |
否 |
主图1 |
|
5 |
cart_img_2 |
text |
65535 |
否 |
否 |
主图2 |
|
6 |
cart_img_3 |
text |
65535 |
否 |
否 |
主图3 |
|
7 |
cart_img_4 |
text |
65535 |
否 |
否 |
主图4 |
|
8 |
cart_img_5 |
text |
65535 |
否 |
否 |
主图5 |
|
9 |
cart_integral |
int |
否 |
否 |
积分 |
|
|
10 |
cart_inventory |
int |
是 |
否 |
商品库存 |
|
|
11 |
cart_price |
double |
是 |
否 |
卖价 |
|
|
12 |
cart_price_ago |
double |
是 |
否 |
原价 |
|
|
13 |
cart_title |
varchar |
125 |
否 |
否 |
标题 |
|
14 |
cart_type |
varchar |
64 |
是 |
否 |
商品分类 |
|
15 |
create_by |
int |
是 |
否 |
创建用户ID |
|
|
16 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
17 |
hits |
int |
是 |
否 |
点击数 |
|
|
18 |
list_status |
smallint |
否 |
否 |
上架状态(0:下架;1上架) |
|
|
19 |
mall_center_id |
int |
是 |
是 |
商城中心ID |
|
|
20 |
purchase_instructions |
varchar |
64 |
否 |
否 |
购买须知 |
|
21 |
recommend |
int |
是 |
否 |
智能推荐 |
|
|
22 |
sku |
longtext |
4294967295 |
否 |
否 |
规格 |
|
23 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-18-message_inform(通知记录)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
inform_id |
int |
是 |
是 |
通知ID |
|
|
2 |
user_id |
int |
是 |
是 |
通知人ID |
|
|
3 |
title |
varchar |
255 |
否 |
否 |
标题 |
|
4 |
state |
varchar |
255 |
否 |
否 |
状态 |
|
5 |
type |
varchar |
64 |
否 |
否 |
分类 |
|
6 |
content |
varchar |
255 |
否 |
否 |
内容 |
|
7 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
8 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-19-notice(公告)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
content |
longtext |
4294967295 |
否 |
否 |
正文 |
|
2 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
3 |
notice_id |
mediumint |
是 |
是 |
公告ID |
|
|
4 |
title |
varchar |
125 |
是 |
否 |
标题 |
|
5 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-20-operation_log(操作日志表)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
operation_log_id |
int |
是 |
是 |
操作日志ID |
|
|
2 |
user_group |
varchar |
64 |
否 |
否 |
用户角色 |
|
3 |
user_name |
varchar |
64 |
否 |
否 |
用户账号 |
|
4 |
routes |
varchar |
64 |
否 |
否 |
模块名称 |
|
5 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
6 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-21-order(订单)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
buy_type |
tinyint |
否 |
否 |
1-全额购买,2-积分兑换,3-钱包购买 |
|
|
2 |
contact_address |
varchar |
255 |
否 |
否 |
收件地址 |
|
3 |
contact_email |
varchar |
125 |
否 |
否 |
联系人邮箱 |
|
4 |
contact_name |
varchar |
32 |
否 |
否 |
联系人姓名 |
|
5 |
contact_phone |
varchar |
11 |
否 |
否 |
联系人手机 |
|
6 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
7 |
delivery_state |
varchar |
16 |
否 |
否 |
发货状态:未配送,已配送 |
|
8 |
desc |
varchar |
64 |
否 |
否 |
取消订单原因 |
|
9 |
description |
varchar |
255 |
否 |
否 |
描述 |
|
10 |
goods_id |
mediumint |
是 |
是 |
商品ID |
|
|
11 |
img |
varchar |
255 |
否 |
否 |
商品图片 |
|
12 |
integral |
int |
否 |
否 |
积分 |
|
|
13 |
merchant_id |
mediumint |
是 |
否 |
商家ID |
|
|
14 |
norms |
varchar |
255 |
否 |
否 |
规格 |
|
15 |
num |
int |
是 |
否 |
数量 |
|
|
16 |
order_id |
int |
是 |
是 |
订单ID |
|
|
17 |
order_number |
varchar |
64 |
否 |
否 |
订单号 |
|
18 |
postal_code |
varchar |
9 |
否 |
否 |
邮政编码 |
|
19 |
price |
double |
是 |
否 |
价格 |
|
|
20 |
price_ago |
double |
是 |
否 |
原价 |
|
|
21 |
price_count |
double |
是 |
否 |
总价 |
|
|
22 |
remark |
text |
65535 |
否 |
否 |
订单备注 |
|
23 |
state |
varchar |
16 |
是 |
否 |
订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
|
24 |
title |
varchar |
255 |
否 |
否 |
商品标题 |
|
25 |
type |
varchar |
64 |
是 |
否 |
商品分类 |
|
26 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
27 |
user_id |
int |
是 |
否 |
买家ID |
|
|
28 |
vip_discount |
double |
否 |
否 |
折扣 |
表 4-22-order_after_sale(订单售后)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
order_after_sale_id |
int |
是 |
是 |
订单售后ID |
|
|
2 |
order_id |
int |
是 |
否 |
订单ID |
|
|
3 |
order_number |
varchar |
64 |
否 |
否 |
订单号 |
|
4 |
goods_id |
mediumint |
是 |
否 |
商品id |
|
|
5 |
title |
varchar |
255 |
否 |
否 |
商品标题 |
|
6 |
price |
double |
是 |
否 |
价格 |
|
|
7 |
price_ago |
double |
是 |
否 |
原价 |
|
|
8 |
num |
int |
是 |
否 |
数量 |
|
|
9 |
price_count |
double |
是 |
否 |
总价 |
|
|
10 |
user_id |
int |
是 |
否 |
买家ID |
|
|
11 |
merchant_id |
mediumint |
是 |
否 |
商家ID |
|
|
12 |
state |
varchar |
16 |
是 |
否 |
订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
|
13 |
after_state |
varchar |
16 |
否 |
否 |
售后状态:未审核,未通过,已通过 |
|
14 |
after_state_reply |
varchar |
255 |
否 |
否 |
售后回复 |
|
15 |
type |
varchar |
255 |
否 |
否 |
售后类型 |
|
16 |
content_desc |
varchar |
255 |
否 |
否 |
售后内容 |
|
17 |
imgs |
varchar |
1000 |
否 |
否 |
售后凭证 |
|
18 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
19 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
20 |
integral |
int |
否 |
否 |
积分 |
|
|
21 |
buy_type |
tinyint |
否 |
否 |
1-全额购买,2-积分兑换,3-钱包购买 |
表 4-23-ordinary_user(普通用户)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
create_by |
int |
是 |
否 |
创建用户ID |
|
|
2 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
3 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
4 |
is_vip |
text |
65535 |
否 |
否 |
可见会员 |
|
5 |
ordinary_user_id |
int |
是 |
是 |
普通用户ID |
|
|
6 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
7 |
user_age |
varchar |
64 |
否 |
否 |
用户年龄 |
|
8 |
user_gender |
varchar |
64 |
否 |
否 |
用户性别 |
|
9 |
user_id |
int |
是 |
否 |
用户ID |
|
|
10 |
user_name |
varchar |
64 |
否 |
否 |
用户姓名 |
表 4-24-praise(点赞)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
praise_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 |
|
|
8 |
status |
tinyint |
是 |
否 |
点赞状态:1为点赞,0已取消 |
|
|
9 |
img |
varchar |
255 |
否 |
否 |
|
|
10 |
title |
varchar |
255 |
否 |
否 |
表 4-25-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-26-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-27-user(用户账户)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
avatar |
varchar |
255 |
否 |
否 |
头像地址 |
|
2 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
3 |
|
varchar |
64 |
否 |
否 |
邮箱 |
|
4 |
email_state |
smallint |
是 |
否 |
邮箱认证:(0未认证|1审核中|2已认证) |
|
|
5 |
integral |
int |
否 |
否 |
积分 |
|
|
6 |
login_time |
timestamp |
否 |
否 |
上次登录时间 |
|
|
7 |
nickname |
varchar |
16 |
否 |
否 |
昵称 |
|
8 |
open_id |
varchar |
255 |
否 |
否 |
针对获取用户信息字段 |
|
9 |
password |
varchar |
64 |
是 |
否 |
密码 |
|
10 |
phone |
varchar |
11 |
否 |
否 |
手机号码 |
|
11 |
phone_state |
smallint |
是 |
否 |
手机认证:(0未认证|1审核中|2已认证) |
|
|
12 |
state |
smallint |
是 |
否 |
账户状态:(1可用|2异常|3已冻结|4已注销) |
|
|
13 |
user_group |
varchar |
32 |
否 |
否 |
所在用户组 |
|
14 |
user_id |
int |
是 |
是 |
用户ID |
|
|
15 |
username |
varchar |
16 |
是 |
否 |
用户名 |
|
16 |
vip_discount |
double |
否 |
否 |
会员折扣 |
|
|
17 |
vip_level |
varchar |
255 |
否 |
否 |
会员等级 |
表 4-28-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 |
是 |
否 |
更新时间 |
表 4-29-vip_level(论坛分类)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
2 |
description |
text |
65535 |
否 |
否 |
会员权益 |
|
3 |
discount |
double |
是 |
否 |
折扣 |
|
|
4 |
name |
varchar |
255 |
是 |
否 |
等级名称 |
|
5 |
price |
double |
否 |
否 |
会员价格 |
|
|
6 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
7 |
vip_level_id |
smallint |
是 |
是 |
等级ID |
用户进入商品信息查看页面后,可通过商品名称关键词进行搜索查询,也可按价格高低、创建时间高低、销量高低等条件筛选目标商品。系统以卡片形式展示商品封面图、销量、卖价等基本信息。点击具体商品卡片可查看详细描述、销量、库存等完整信息,并可执行收藏、点赞、分享、领取优惠劵、立即购买、加入购物车操作。商品信息查看界面如图5-1所示。

图5-1 商品信息查看界面
用户可在个人账户查看页面浏览当前可购买的会员套餐列表,系统显示会员等级、折扣、金额、会员权益。通过点击购买,弹出支付界面,选择支付方式。购买会员界面如图5-2所示。

图5-2 购买会员界面
用户在我的订单中找到对应的订单,点击售后申请,根据对话框提示依次填写售后类型、售后内容、相关凭证点提交即可。售后申请界面如图5-3所示。

图5-3 售后申请界面
知识文章页面按分类展示话题帖列表,用户可通过关键词搜索帖子或按排序筛选。点击帖子标题可查看完整内容及所有回复,登录用户可对帖子进行点赞、收藏,在回复框输入内容后提交即可。系统实时显示帖子访问量和最新回复时间。知识文章查看界面如图5-4所示。

图5-4 知识文章查看界面
管理员在商品数据管理页面可对商品库进行全生命周期管理。通过输入商品名称爬取查询商品信息,可以批量选取添加或删除商品。商品数据管理界面如图5-6所示。

图5-6 商品信息管理界面
管理员在此模块负责会员等级的创建与维护,可新增会员等级并设置折扣、会员价格、会员权益等基本信息。会员等级管理界面如图5-7所示。

图5-7 会员等级管理界面
该模块集中显示所有知识文章,管理员可通过录入标题、封面、分类、标签、描述、正文等信息添加知识文章信息。可通过输入标题、标签和分类进行查找。可批量删除文章。新闻管理界面如图5-8所示。

图5-8 新闻管理界面
管理员在此模块管理商城中心、订单、优惠劵,可上架新商品并设置标题、规格、卖价及库存数量等信息。系统实时显示各商品的销量和剩余库存,管理员可对订单进行审核操作,处理售后申请。商城管理界面如图5-9所示。

图5-9 商城管理界面
测试的主要目的是验证vue的羽毛球商品推荐系统的各项功能是否符合需求规格说明,确保系统在实际运行环境中的稳定性和可靠性。通过系统测试,可以检测各功能模块是否正常运行,数据交互是否准确无误,用户操作流程是否顺畅。测试目的包括验证用户功能模块的完整性,确认管理员管理功能的可用性,评估推荐算法的准确性,检查系统对异常情况的处理能力。通过全面测试发现并修复潜在缺陷,确保系统上线后能够为用户提供稳定可靠的服务,满足商品推荐和用户交互的基本需求。
本系统采用黑盒测试方法,重点验证系统功能是否符合需求规格。测试用例设计覆盖所有功能模块,包括用户端功能测试和管理员功能测试两大类别。用户端测试涵盖商品信息查看、购买会员、售后申请等核心功能;管理员端测试包括角色管理、商城管理、系统管理等后台操作。每个测试用例明确测试步骤、输入数据和预期输出,通过对比实际结果与预期结果的差异来识别系统缺陷。测试过程中特别关注用户交互流程的完整性和数据展示的准确性,确保系统在各功能场景下都能正常运行。
商品信息查看功能测试用例表是用来验证用户能否正确浏览和查看平台发布的商品信息。商品信息查看功能测试用例表如表6-2所示。
表6-2 商品信息查看功能测试用例表
|
测试项 |
测试用例 |
预期结果 |
结论 |
|
商品信息查看功能测试 |
1. 用户成功登录系统 |
系统跳转至商品信息列表页面,展示所有可购买的商品基本信息 |
与预期结果一致 |
购买会员功能测试用例表是用来验证用户能否正确购买会员功能测试用例表如表6-3所示。
表6-3 购买会员功能测试用例表
|
测试项 |
测试用例 |
预期结果 |
结论 |
|
购买会员功能测试 |
1. 用户登录系统 |
系统进入个人账户页面,展示个人信息列表 |
与预期结果一致 |
售后申请功能测试用例表是用来验证用户能否正常提交售后申请。售后申请功能测试用例表如表6-4所示。
表6-4 售后申请功能测试用例表
|
测试项 |
测试用例 |
预期结果 |
结论 |
|
售后申请功能测试 |
1. 用户登录系统 |
系统跳转至售后申请,显示申请对话框输入售后类型、内容、凭证等 |
与预期结果一致 |
商品信息管理功能测试用例表是用来验证管理员能否对商品信息进行完整的管理操作。商品信息管理功能测试用例表如表6-5所示。
表6-5 商品信息管理功能测试用例表
|
测试项 |
测试用例 |
预期结果 |
结论 |
|
商品信息管理功能测试 |
1. 管理员登录后台管理系统 |
系统成功进入商城管理界面 |
与预期结果一致 |
数据可视化查看功能测试用例表是用来验证管理员能否正确查看各项数据统计图表。数据可视化查看功能测试用例表如表6-6所示。
表6-6 数据可视化查看功能测试用例表
|
测试项 |
测试用例 |
预期结果 |
结论 |
|
数据可视化查看功能测试 |
1. 管理员登录系统 |
系统成功显示管理员主页 |
系统功能测试已全部完成。商品信息查看功能测试中,用户能够正常浏览商品列表并查看完整的商品详情信息。购买会员功能测试表明,用户可以成功购买会员套餐并获取会员套餐详细信息。售后申请功能测试验证了用户能够正常浏览可售后的订单详情。商品信息管理功能测试证明,管理员能够成功执行商品信息的新增、修改和删除操作。数据可视化查看功能测试显示,管理员主页的各项统计图表均能正确渲染并准确展示数据。所有测试用例执行结果均与预期结果一致,系统各项主要功能运行正常,符合设计要求。
本文围绕基于Vue的羽毛球商品推荐系统的设计与实现展开全面研究。论文首先分析了体育用品电商及信息服务模式的演进历程,指出传统销售方式在应对海量商品数据与用户个性化装备需求方面存在的局限性,阐述了系统建设的必要性与价值。通过对比分析国内外体育垂直电商平台的发展现状与技术特点,明确了系统的研究定位与技术路线。研究采用Java语言,利用Spring Boot与Vue分别构建系统前后端架构,利用MySQL进行数据存储,结合网络爬虫技术实现羽毛球行业资讯与商品数据的自动化采集处理。系统设计阶段完成了可行性论证、功能需求分析与总体架构设计,建立了包含用户功能模块与管理功能模块的完整体系。数据库设计采用规范的实体关系模型,构建了商品信息、订单交易、购物车、优惠券、知识文章、用户评价及系统日志等核心数据表,为系统实现奠定数据基础。
系统实现部分详细阐述了用户端商品浏览、个性化喜好推荐、商城购物(含购物车管理、优惠券使用及会员购买)和知识文章阅读等功能的具体开发过程,以及管理员端数据可视化看板、商品全生命周期管理、订单售后处理、新闻内容维护及系统权限控制等功能的实现方案。系统测试阶段通过设计完整的测试用例对各项功能进行验证,测试结果表明系统运行稳定,响应迅速,各项功能符合设计要求。本系统的建成有效解决了羽毛球装备信息分散、推荐方式单一、用户交互不足等问题,构建了集商品信息管理、用户行为分析与个性化推荐于一体的综合服务平台。该系统不仅提升了运动装备推荐的准确性,改善了用户的购物体验,也为体育商品运营方提供了数据驱动的决策支持,具有一定的理论价值与实践意义。
- 郑爽. 跨境电商平台智能化推荐系统对用户购买行为影响的实证研究 [J]. 常州工学院学报, 2025, 38 (05): 76-82.
- 陈泳雄,应琦. 多业态电商平台中的智能推荐系统设计与数据挖掘的应用研究 [J]. 软件, 2025, 46 (10): 108-110.
- 白雨珂. 基于用户标签的电商平台智能推荐系统设计与实现[D]. 西安石油大学, 2025.
- 车凡庭. 基于用户行为和评论语义的推荐系统设计与实现[D]. 北京邮电大学, 2025.
- 石安国. 基于深度学习的商品推荐系统设计与实现[D]. 西安石油大学, 2024.
- 胡绍方,高光. 基于Spark的商品推荐系统的设计与实现 [J]. 电脑知识与技术, 2024, 20 (14): 1-3.
- Chowdhary M ,Chahal P . Online Review-based Product Recommendation Using Mellivora Heron Optimization-based BiLSTM Model in E-Commerce Systems [J]. Web Intelligence, 2025, 23 (2): 172-194.
- Wang D . Research on e-commerce special commodity recommendation system based on attention mechanism and Dense Net model [J]. Systems and Soft Computing, 2025, 7 200216-200216.
- Li Z ,Yao Y ,Yuan Y . The commodity recommendation algorithm for automatic security sale system based on the internet of things [J]. Journal of Computational Methods in Sciences and Engineering, 2024, 24 (6): 4101-4116.
- Apak S ,Degim T I ,Zahertar S . Blockchain-based personalized federated learning framework for drug recommendation systems resilient to model poisoning [J]. Neural Computing and Applications, 2026, 38 (1): 8-8.
- Rajal R ,Kumar N ,Kumar S , et al. A comprehensive review of product recommendation systems using deep learning techniques [J]. Knowledge and Information Systems, 2025, 68 (1): 8-8.
- Dhoria H S ,Mohammad A A ,Deepthi D , et al. Product recommendation system based on enhanced real-time face emotion recognition [J]. Discover Applied Sciences, 2025, 7 (12): 1415-1415.
- 蒋肖辉. 基于长短期记忆网络的混合式商品推荐系统的设计与实现[D]. 江苏科技大学, 2024.
- 邓威. 基于Spark的商品推荐系统的设计与实现[D]. 四川师范大学, 2023.
- 陈强强. 基于用户行为的混合式商品推荐系统的设计与实现[D]. 南京邮电大学, 2022.
- 董林芳. 基于英文用户评价的玩具与游戏推荐系统的设计与实现[D]. 北京邮电大学, 2022.
- 刘思淇. 基于知识图谱的商品个性化推荐系统设计与实现[D]. 湖南工商大学, 2022.
- 王宝莹. 基于深度学习的电商实时推荐系统的设计与实现[D]. 北京交通大学, 2022.
- 李胜辉. 游戏商品推荐系统的设计与实现[D]. 武汉邮电科学研究院, 2022.
- 吕善雨. 多元化信息融合的电商推荐系统设计与实现[D]. 北京邮电大学, 2022.
在本项目的实施过程中,许多人给予了我无私的支持和帮助,令我深感感谢。
我要衷心感谢我的指导老师。不仅在项目的初期提供了宝贵的建议,还在整个过程中给予了我细致入微的指导。专业知识和严谨态度始终激励着我,让我在遇到困难时能够保持信心,继续前行。每一次的讨论都让我对项目有了更深刻的理解,帮助我克服了许多技术难题。
我也要感谢参与用户测试的同学们。你们的反馈和建议为我们系统的优化提供了重要的参考,帮助我们更好地理解用户需求。正是因为有了你们的参与,我们才能够不断改进,提升系统的用户体验。感谢所有支持我的家人和朋友。你们的理解与鼓励让我在项目的紧张时刻始终能够保持积极的心态,成为我前进的动力。每当我遇到挑战时,想到你们的支持,我就能够重新振作,继续努力。最后,我要感谢所有在我职业发展过程中给予帮助的人。每一次的交流与分享都让我受益匪浅,拓宽了我的视野,让我在这条道路上走得更加坚定。
项目的完成不仅是我个人努力的结果,更是许多人共同支持与协作的成果。在此,我再次向所有关心和支持我的人表达衷
心的感谢。希望未来我们能够继续携手,共同创造更多的价值和成就。
点赞+收藏+关注 → 私信领取本源代码、数据库
更多推荐


所有评论(0)