基于SpringBoot的网上超市管理系统(源码+L文+说明文档)
目录
4 系统设计
4.1 系统概述
当前,系统的类型有很多,从系统呈现的内容来看,系统的类型有社交类,有商业类,有政府类,有新闻类等。那么,在众多系统类型中,先明确将要设计的系统的类型才是系统设计的首要工作,然后在此基础上明确系统的用户群,功能等,针对这些信息设计出具有独特体验和视觉的系统。如此才能让系统比较具有特色,也能够在众多相似系统中给用户留下深刻印象。
4.1系统目标
本系统在功能制定上,严格参照用户的要求,但是在设计本系统时,也要满足易操作,使用便利的设计要求。由此,设计出一个规范化并且符合用户需求的系统,一定要达到下述系统目标。
第一个系统目标:用户与系统之间的操作方式是基于人机对话,可视化界面的设计除了美观性之外,也具备友好性。可视化界面提供的各类信息符合准确性,可靠性的要求,并能够方便用户灵活查看。
第二个系统目标:用户与系统交互产生的数据,要严格规范的保存在数据库里,无论是后期管理人员查找与管理,都要确保数据安全。
第三个系统目标:实现用户需求的功能。根据对用户的调查得出的功能需求,完成网上超市系统的设计与实现。
第四个系统目标:在必要环节,对用户登记的数据进行检查,包括数据长度,以及数据输入类型等的检查,发现错误及时反馈,引导用户规范登记数据。常见的有密码修改,注册登录,用户资料填写等环节的数据核验。
第五个系统目标:设计开发本系统,需要尽最大努力,在系统具备易操作的特点外,也要求系统于后期使用中,维护方便,让系统具备易维护的特点。
第六个系统目标:本系统在交付用户使用时,可以达到运行稳定的目标,另外,系统具备安全性,也符合可靠性的条件,用户可以放心使用。
4.2功能模块设计
前面所做的功能分析,只是本系统的一个大概功能,这部分需要在此基础上进行各个模块的详细设计。
设计的管理员的详细功能见下图,管理员根据订单状态管理不同的订单信息,管理商品和用户,审核和统计商品评价信息。
图4.1 管理员功能结构图
设计的用户的详细功能见下图,用户购买商品时需要选择收货地址,然后提交订单进行支付,可以根据订单所处的状态管理不同订单。
图4.2 用户功能结构图
4.3数据库设计
相比非关系型数据库来说,目前市场上使用率比较高,并且易于维护的数据库,当数关系型数据库了。这个数据库主要是基于关系模型的方式来对数据信息进行组织。也就是常见的二维表模型。可以说二维表和二维表之间的相互联系就构成了关系型数据库。
4.3.1数据库E-R图
为了更好地保存网上超市系统产生的数据,就需要在数据库的设计阶段对E-R模型进行建立,以及完成数据库中的表结构的创建。之所以要单独完成数据库的设计,主要有以下几点原因:
第一点:防止代码冗余;
第二点:防止占用过多内存;
第三点:提升数据库的整体性能,方便程序开发以及数据更新;
第四点:保证数据的完整性;
本部分内容主要在于建立本系统的E-R模型,需要先收集数据,然后根据数据库实现的思路,对用户的需求进行分析,这期间需要对实体,属性,还有关系进行标识,为绘制E-R模型做好充足准备。同时,在作图中,也要注意作图规范,注意每个符号的正确使用。
(1)设计的订单实体,其具备的属性见下图。
图4.4 订单实体属性图
(2)设计的用户实体,其具备的属性见下图。
图4.5 用户实体属性图
(3)设计的商品实体,其具备的属性见下图。
图4.6 商品实体属性图
(4)设计的商品分类实体,其具备的属性见下图。
图4.7 商品分类实体属性图
(5)设计的各实体间关系见下图。
图4.8 实体间关系E-R图
4.3.2 数据库表结构
为了设计出结构合理,性能优良的数据库,在设计数据库时,需要遵循三大范式:
第一范式:确保数据表当中的每列所代表的字段值都不能再进行分解了;
第二范式:在满足第一范式基础上,让数据表中每列与主键相关;
第三范式:在满足第二范式基础上,确保每列数据直接与主键相关,不是间接相关。
从上面的表述中可以看出,这三大范式,在等级上还是有区分的,最低等级的就数第一范式,最高等级的就是第三范式,趋于两者中间的是第二范式。总之,数据库设计按照这三大范式进行,可以简化设计过程,并且还会减少数据冗余,对于数据检索效率的提升也很有帮助。
表4.1 购物车信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 |
| 主键 |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
tablename | varchar(200) | 是 | shangpinxinxi | 商品表名 |
userid | bigint(20) | 否 |
| 用户id |
goodid | bigint(20) | 否 |
| 商品id |
goodname | varchar(200) | 是 | NULL | 商品名称 |
picture | varchar(200) | 是 | NULL | 图片 |
buynumber | int(11) | 否 |
| 购买数量 |
price | float | 是 | NULL | 单价 |
discountprice | float | 是 | NULL | 会员价 |
表4.2 订单信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 |
| 主键 |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
orderid | varchar(200) | 否 |
| 订单编号 |
tablename | varchar(200) | 是 | shangpinxinxi | 商品表名 |
userid | bigint(20) | 否 |
| 用户id |
goodid | bigint(20) | 否 |
| 商品id |
goodname | varchar(200) | 是 | NULL | 商品名称 |
picture | varchar(200) | 是 | NULL | 商品图片 |
buynumber | int(11) | 否 |
| 购买数量 |
price | float | 否 | 0 | 价格/积分 |
discountprice | float | 是 | 0 | 折扣价格 |
total | float | 否 | 0 | 总价格/总积分 |
discounttotal | float | 是 | 0 | 折扣总价格 |
type | int(11) | 是 | 1 | 支付类型 |
status | varchar(200) | 是 | NULL | 状态 |
address | varchar(200) | 是 | NULL | 地址 |
表4.3商品分类信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 |
| 主键 |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
shangpinfenlei | varchar(200) | 否 |
| 商品分类 |
表4.4 商品评价信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 |
| 主键 |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
dingdanbianhao | varchar(200) | 是 | NULL | 订单编号 |
shangpinmingcheng | varchar(200) | 是 | NULL | 商品名称 |
shangpinfenlei | varchar(200) | 是 | NULL | 商品分类 |
pinpai | varchar(200) | 是 | NULL | 品牌 |
pingfen | varchar(200) | 否 |
| 评分 |
pingjianeirong | longtext | 否 |
| 评价内容 |
tianjiatupian | varchar(200) | 是 | NULL | 添加图片 |
pingjiariqi | date | 是 | NULL | 评价日期 |
yonghuming | varchar(200) | 是 | NULL | 用户名 |
lianxidianhua | varchar(200) | 是 | NULL | 联系电话 |
sfsh | varchar(200) | 是 | 否 | 是否审核 |
shhf | longtext | 是 | NULL | 审核回复 |
表4.5 商品信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 |
| 主键 |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
shangpinmingcheng | varchar(200) | 否 |
| 商品名称 |
shangpinfenlei | varchar(200) | 否 |
| 商品分类 |
tupian | varchar(200) | 是 | NULL | 图片 |
biaoqian | varchar(200) | 是 | NULL | 标签 |
pinpai | varchar(200) | 是 | NULL | 品牌 |
shangpinxiangqing | longtext | 是 | NULL | 商品详情 |
clicktime | datetime | 是 | NULL | 最近点击时间 |
clicknum | int(11) | 是 | 0 | 点击次数 |
price | float | 否 |
| 价格 |
表4.6 管理员信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 |
| 主键 |
username | varchar(100) | 否 |
| 用户名 |
password | varchar(100) | 否 |
| 密码 |
表4.7用户信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 |
| 主键 |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
yonghuming | varchar(200) | 否 |
| 用户名 |
mima | varchar(200) | 否 |
| 密码 |
xingming | varchar(200) | 是 | NULL | 姓名 |
touxiang | varchar(200) | 是 | NULL | 头像 |
xingbie | varchar(200) | 是 | NULL | 性别 |
lianxidianhua | varchar(200) | 是 | NULL | 联系电话 |
money | float | 是 | 0 | 余额 |
5 系统实现
在此部分内容中,主要通过系统功能的运行效果图展示前面设计的最终结果。系统实现对编制人员的技术能力有较高要求,因为需要他们使用编程的方式去实现系统设计的方案。
5.1 管理员功能实现
5.1.1 商品信息管理
管理员权限中的商品信息管理,其运行效果见下图。管理员查询商品需要提交商品名称才行,管理员点击查看评论,可以查看该商品对应的用户评论信息。
图5.1 商品信息管理页面
5.1.2 用户管理
管理员权限中的用户管理,其运行效果见下图。管理员提交用户名获取用户资料,修改有异常情况的用户信息。点击详情可以对用户资料进行更为详细的查看。
图5.2 用户管理页面
5.1.3 商品评价管理
管理员权限中的商品评价管理功能,其运行效果见下图。用户评价商品,需要得到管理员审核才可以显示。同时管理员点击统计报表可以统计商品评价信息。
图5.3 商品评价管理页面
5.1.4 已支付订单
管理员权限中的已支付订单,其运行效果见下图。管理员查看已支付订单,然后逐个进行订单发货。
图5.4 已支付订单页面
5.2 用户功能实现
5.2.1 商品信息
用户权限中的商品信息,其运行效果见下图。用户收藏喜欢的商品,可以立即购买商品,或评价商品,也能把商品添加到购物车。
图5.5 商品信息页面
5.2.2 购物车
用户权限中的购物车,其运行效果见下图。购物车的商品允许直接下单,也允许删除购物车商品。
图5.6 购物车页面
5.2.3 确认下单
用户权限中的确认下单,其运行效果见下图。确认下单之前,需要选择地址,也需要查看支付金额信息。
图5.7 确认下单页面
5.2.4 已支付订单
用户权限中的已支付订单,其运行效果见下图。用户已经支付了订单,如果后悔购买商品的话,还可以申请退款。
图5.8 已支付订单页面