1. 项目概述
作为一名经历过毕业设计洗礼的过来人,我深知电商类项目是计算机专业学生最常选择的课题方向之一。这个基于SpringBoot+Vue的手机销售网站项目,是我在毕业设计期间从零开始搭建的一个完整电商系统。不同于市面上那些花里胡哨的教程,我想分享的是真正在毕设开发过程中遇到的坑和解决方案。
这个项目最核心的价值在于:它完整呈现了一个电商系统从需求分析到上线的全流程,特别是那些教科书上不会告诉你的实战经验。比如,我在开发初期就犯了一个致命错误——订单表没有正确建立外键关联,导致后期查询效率低下,不得不花近两天时间重构数据库结构。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 需求分析与功能设计
2.1 核心功能定位
在开始编码前,我花了大量时间进行需求分析。很多同学容易陷入"功能越多越好"的误区,我也不例外。最初我设计了一个商品数据可视化大屏,看起来很酷炫,但导师一针见血地指出:这偏离了电商系统的核心需求。
经过调整,最终确定了三个核心角色及其功能:
管理员端:
- 商品全生命周期管理(上架/下架/修改/删除)
- 公告发布与管理
- 论坛内容审核
- 商家资质审核
- 订单监控与处理
- 用户咨询与评价管理
商家端:
- 商品发布与库存管理
- 订单处理与发货
- 用户咨询回复
- 评价查看与分析
用户端:
- 商品浏览与搜索
- 购物车管理
- 订单创建与支付
- 商品评价
- 论坛互动
2.2 需求验证方法
为了避免闭门造车,我采用了以下验证方法:
- 邀请5-7名同学进行全流程测试
- 制定明确的输入约束(如图片格式、字数限制)
- 建立标准的商品编号生成规则(SP+年份+序号)
重要提示:在需求阶段多花1天时间验证,可能节省后期3天的返工时间。这是我的血泪教训。
3. 技术选型与架构设计
3.1 前后端技术栈
后端技术栈:
- SpringBoot 2.7.x:简化配置,快速搭建RESTful API
- MyBatis-Plus:增强型ORM框架,减少样板代码
- MySQL 5.7:稳定可靠的关系型数据库
- Redis:缓存热点数据,提升系统响应速度
前端技术栈:
- Vue 2.x:渐进式JavaScript框架
- ElementUI:基于Vue的UI组件库
- Axios:处理HTTP请求
- Vue Router:实现前端路由
3.2 架构设计决策
采用前后端分离架构,主要基于以下考虑:
- 开发效率:前后端可以并行开发
- 维护性:职责分离,降低耦合度
- 扩展性:未来可以轻松替换技术栈
API设计遵循RESTful规范,使用JWT进行身份认证。这里特别提醒:一定要在项目初期就设计好统一的响应格式,否则后期联调会很痛苦。
4. 数据库设计与优化
4.1 核心表结构设计
经过多次迭代,最终确定了13张核心表。以下是几个关键表的设计要点:
商品表(shangpin):
sql复制CREATE TABLE `shangpin` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`shangjia_id` bigint(20) NOT NULL COMMENT '商家ID',
`shangpin_name` varchar(200) NOT NULL COMMENT '商品名称',
`shangpin_kucun_number` int(11) NOT NULL COMMENT '库存数量',
`shangpin_new_money` decimal(10,2) NOT NULL COMMENT '商品价格',
`shangpin_content` text COMMENT '商品详情',
PRIMARY KEY (`id`),
KEY `shangjia_id` (`shangjia_id`),
CONSTRAINT `shangpin_ibfk_1` FOREIGN KEY (`shangjia_id`) REFERENCES `shangjia` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
订单表(shangpin_order):
