Spring Boot技术:构建高效网上购物平台

第3章 系统分析

3.1 可行性分析

在系统开发之初要进行系统可行分析,这样做的目的就是使用最小成本解决最大问题,一旦程序开发满足用户需要,带来的好处也是很多的。下面我们将从技术上、操作上、经济上等方面来考虑这个系统到底值不值得开发。

3.1.1 技术可行性

本基于Spring Boot的网上购物商城系统采用Java和MYSQL数据库进行开发设计,作为计算机专业学生,在学校期间就接触到许多关于编程方面的知识,当然也包括各种编程软件,对他们的了解度也比较系统,所以技术开发上面还是有一定把握。

3.1.2 经济可行性

由于自己本身就是学生,还没有正式参加工作,金钱上面一直都处于缺乏状态。所以在开发程序过程中,我是不会花太多经济成本在上面的。针对开发软件和数据库,还有界面设计的photoshop软件等在百度上面就可以直接下载,然后根据各种安装视频进行安装,这些资源都是免费的,程序编码阶段使用的源代码在百度上面可以轻松获得,在有网络的环境下就能下载下来,不需要支付任何费用,经济成本很低。

3.1.3 操作可行性

本人自己就是学生,程序开发经验不足,在界面设计上面不会设计太复杂,要讲究简单好看,操作上要方便,不能让用户觉得不流畅。用户一旦进入操作界面,界面上就会有相应提示,跟着操作提示就可以找到对应的功能操作模块,对于用户来说免培训就能使用。本基于Spring Boot的网上购物商城系统本身具有操作可行性,其界面设计清晰、功能权限分配合理,操作简单,不同用户登录后可对进行相应功能模块的操作,具有极高的操作可行性。

3.1.4 时间可行性

从时间上看,在三个月的时间里学习相关知识,开发本基于Spring Boot的网上购物商城系统,时间上是有点紧,但是不是不可能实现,在做毕业设计的这几个月里,我通过努力使得功能应该基本可以实现。

综上所述,我们进行了四个方面的可行性研究,可以看出,该基于Spring Boot的网上购物商城系统的开发是没有问题的。

3.2 系统功能分析

本基于Spring Boot的网上购物商城系统主要满足三种用户的需求,这三种用户分别为管理员、商家和用户,下面将对这三种用户分别实现的功能进行详细的阐述。

(1)用户:用户在系统前台可查看系统信息,包括首页、商品信息等,注册登录后主要功能模块包括购物车、个人中心、我的地址、我的收藏管理以及订单管理,用例图如图3-1所示。

图3-1 用户用例图

(2)管理员:管理员登录后可对系统进行全面的管理,主要功能模块包括个人中心、用户管理、商家管理、商品分类管理、商品信息管理、我的收藏管理、系统管理以及订单管理。管理员用例图如图3-2所示。

图3-2 管理员用例图图

(3)商家:商家注册登录后主要功能模块包括个人中心、商品信息管理、我的收藏管理以及订单管理。商家用例图如图3-3所示。

图3-3 商家用例图

3.3 系统性能分析

(1)系统的存储性:因为是网上购物商城系统,所以就会在数据库要求上比较严格,信息录入的比较多,而且丰富复杂, 这就需要一个强大的数据库来存放更多的数据和保证数据的时时性。

(2)系统的易学性:系统设计的应该简单易学的,设计的各种功能应该简单操作,不需要努力学习培训,缩短用户熟悉系统的进程。

(3)系统的数据要求:数据应该录入准确,需要更新时,数据应该可以及时的修改,数据还应该有独立保存,不能删除数据的时候会连带着把还需要的数据都删除掉。

(4)系统稳定性:开发的基于Spring Boot的网上购物商城系统要求运行稳定,运行过程中无界面不清楚、字体模糊等现象。

(5)系统可靠性:系统不可以有病毒类代码,必须有拦截器,验证方法,对里面信息的保护措施,这样才让人用的放心。

3.4 系统流程分析

3.4.1注册流程

未有账号的用户可进行注册操作,在注册时系统会判断用户名是否已存在,已存在的话,提示返回重新填写用户名,用户名不存在,填写其他注册信息,系统判断注册信息是否正确,正确则在数据库中添加用户信息,注册成功。用户注册流程图如图3-4所示。

图3-4注册流程图

3.4.2登录流程

登录模块主要满足了用户、商家以及管理员的权限登录,用户登录流程图如图3-5所示

图3-5登录流程图

3.4.3购买流程

用户在购买商品时需要登录系统,只要登录后才可支付购买商品,用户购买商品的流程分析如图3-6所示。

图3-6 购买流程图

第4章 系统设计

4.1 系统结构设计

系统结构设计是一个将一个庞大的任务细分为多个小的任务的过程,这些小的任务分段完成后,组合在一起形成一个完整的任务。在整个设计过程,以确定可能的具体方案达成每一个小的最终目标,对于每一个小的目标而言,我们必须先了解一些相关的需求分析的信息。然后对系统进行初步的设计,并对其逐渐进行优化,设计出一个具体可实现的系统结构。

本基于Spring Boot的网上购物商城系统主要包括用户模块、商家模块和管理员模块,根据第三章中系统功能需求分析,可画出本基于Spring Boot的网上购物商城系统的结构图如图4-1所示:

图 4-1 系统结构图

4.2系统顺序图

4.2.1登录模块顺序图

用户、商家和管理员均可进行登录操作,登录模块的顺序图如图 4-2 所示。

图4-2用户登录顺序图

4.2.2添加信息模块顺序图

管理员、商家和用户登录后均可进行添加信息操作,添加信息顺序图如图4-3所示

图4-3添加信息顺序图

4.3 数据库设计

4.3.1 数据库E-R图设计

E-R图展现了数据的实体结构关系,为系统数据管理奠定了基础,也对数据进行规范化的设置,保证后期的高效性,避免数据出现重复造成冗余使得数据更新出现异常,无法同步数据和插入数据。通过E-R图也可便于对数据的设计和修改,如果一个数据库在被设计时没有相对应的E-R图,则整体数据库就缺少明确的定位和条理性,使得处理数据的效率大大降低,在需要更新或者查找数据时报错的可能性大大提升,对与后期运行调试系统会造成不必要的麻烦。本基于Spring Boot的网上购物商城系统的E-R图如下图所示:

1、商品分类信息实体E-R图如图4-4所示:

图4-4 商品分类信息实体的E-R图

2、商家信息实体E-R图如图4-5所示:

图4-5 商家信息实体E-R图

3、订单实体图如图4-6所示。

图4-6 订单实体E-R图

4、管理员信息实体图如图4-7所示。

图4-7 管理员信息实体E-R图

5、商品信息实体图如图4-8所示。

图4-8 商品信息实体E-R图

6、用户信息实体图如图4-9所示。

图4-9用户信息实体E-R图

4.3.2数据库表设计

本基于Spring Boot的网上购物商城系统采用了MYSQL数据库进行系统数据的储存,主要的数据库表的具体设置如下:

表4-1 shangpinfenlei商品分类信息表

列名 说明 类型 ( 长度 ) 备注

id 编号 bigint(20) 不允许空,主键

addtime 创建时间 timestamp 允许空

leibie 类别 varchar(200) 允许空

表4-2 shangjia商家信息表

列名 说明 类型 ( 长度 ) 备注

id 编号 bigint(20) 不允许空,主键

addtime 创建时间 timestamp 允许空

zhanghao 账号 varchar(200) 允许空

mima 密码 varchar(200) 允许空

shangjiamingcheng 商家名称 varchar(200) 允许空

xingbie 性别 varchar(200) 允许空

shouji` 手机 varchar(200) 允许空

youxiang 邮箱 varchar(200) 允许空

shenfenzheng 身份证 varchar(200) 允许空

money 余额 float 允许空

表4-3 orders订单信息表

列名 说明 类型 ( 长度 ) 备注

id 编号 bigint(20) 不允许空,主键

addtime 下单时间 timestamp 允许空

orderid 订单编号 varchar(200) 允许空

tablename 商品表名 varchar(200) 允许空

userid 用户编号 bigint(20) 允许空

goodid 商品编号 bigint(20) 允许空

goodname 商品名称 varchar(200) 允许空

picture 商品图片 varchar(200) 允许空

buynumber 购买数量 int(11) 允许空

price 价格 float 允许空

discountprice 折扣价格 float 允许空

total 总价格 float 允许空

discounttotal 折扣总价格 float 允许空

type 支付类型 int(11) 允许空

status 状态 varchar(200) 允许空

address 地址 varchar(200) 允许空

表4-4 users管理员信息表

列名 说明 类型 ( 长度 ) 备注

id 编号 bigint(20) 不允许空,主键

username 用户名 varchar(100) 允许空

password 密码 varchar(100) 允许空

role 角色 varchar(100) 允许空

addtime 添加时间 timestamp 允许空

表4-5 yaopinxinxi商品信息表

列名 说明 类型 ( 长度 ) 备注

id 编号 bigint(20) 不允许空,主键

addtime 创建时间 timestamp 允许空

shangpinmingcheng 商品名称 varchar(200) 允许空

leibie 类别 varchar(200) 允许空

yueshouxiaoliang 月售销量 varchar(200) 允许空

tupian 图片 varchar(200) 允许空

xiangqing 详情 longtext 允许空

zhanghao 账号 varchar(200) 允许空

shangjiamingcheng 商家名称 varchar(200) 允许空

sfsh 是否审核 varchar(200) 允许空

shhf 审核回复 longtext 允许空

thumbsupnum 赞数 int(11) 允许空

crazilynum 踩数 int(11) 允许空

clicktime` 最近点击时间 datetime 允许空

clicknum 点击次数 int(11) 允许空

price 价格 float

表4-6 yonghu用户信息表

列名 说明 类型 ( 长度 ) 备注

id 编号 bigint(20) 不允许空,主键

addtime 创建时间 timestamp 允许空

zhanghao 账号 varchar(200) 允许空

mima 密码 varchar(200) 允许空

xingming 姓名 varchar(200) 允许空

xingbie 性别 varchar(200) 允许空

youxiang` 邮箱 varchar(200) 允许空

shenfenzheng 身份证 varchar(200) 允许空

shouji 手机 varchar(200) 允许空

money 余额 float 允许空

相关推荐
V+zmm1013430 分钟前
基于微信小程序的乡村政务服务系统springboot+论文源码调试讲解
java·微信小程序·小程序·毕业设计·ssm
Oneforlove_twoforjob1 小时前
【Java基础面试题025】什么是Java的Integer缓存池?
java·开发语言·缓存
xmh-sxh-13141 小时前
常用的缓存技术都有哪些
java
搬码后生仔1 小时前
asp.net core webapi项目中 在生产环境中 进不去swagger
chrome·后端·asp.net
迷糊的『迷』1 小时前
vue-axios+springboot实现文件流下载
vue.js·spring boot
凡人的AI工具箱1 小时前
每天40分玩转Django:Django国际化
数据库·人工智能·后端·python·django·sqlite
AiFlutter1 小时前
Flutter-底部分享弹窗(showModalBottomSheet)
java·前端·flutter
J不A秃V头A2 小时前
IntelliJ IDEA中设置激活的profile
java·intellij-idea
DARLING Zero two♡2 小时前
【优选算法】Pointer-Slice:双指针的算法切片(下)
java·数据结构·c++·算法·leetcode
Lx3522 小时前
Pandas数据重命名:列名与索引为标题
后端·python·pandas