网上超市开发:SpringBoot实现细节

4 系统设计

当前,系统的类型有很多,从系统呈现的内容来看,系统的类型有社交类,有商业类,有政府类,有新闻类等。那么,在众多系统类型中,先明确将要设计的系统的类型才是系统设计的首要工作,然后在此基础上明确系统的用户群,功能等,针对这些信息设计出具有独特体验和视觉的系统。如此才能让系统比较具有特色,也能够在众多相似系统中给用户留下深刻印象。

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 余额

6系统测试

这部分内容主要是把前期编码完成的系统,当成是计算机系统的一部分,并结合一些数据,计算机硬件和支持的软件进行集成测试和确认测试。之所以要进行最后的测试步骤,原因在于检查制作的系统与需求说明书的比较中,存在的差异问题。进一步确认制作的系统在功能与性能上跟需求说明书当中的要求相符。

6.1 系统测试的类型

检测系统是否合格,需要用到很多的测试类型。接下来就对这部分内容进行描述。

功能测试:这是系统测试中,首先进行的测试内容,其属于黑盒测试。主要检验制作的系统与需求说明文档的相符程度,还有它们之间存在的差异问题。

性能测试:主要测试制作的系统,在同时面对很多的用户请求时,该系统的应对能力。同时也是检查制作的系统跟事先预定的系统性能存在的差距问题。这样的方法通常在实时系统中,或者是嵌入式系统中运用得比较多。

容量测试:这种方法针对数据。检查正常运行的系统对数据处理的容量值。

安全性测试:这种方法常用于检验系统中设置的安全保护机制对来自非法用户的攻击时是否有效。而检测系统中的信息保护机制就需要使用常见安全测试中的保护测试来验证。

健壮性测试:这种测试还有一个别称是容错测试,通常运用故障插入法来检测系统的容错能力,看系统是否可以忽略故障保持继续运行,或者是检测系统应对故障时的自动恢复能力。

兼容性测试:面对计算机的各种软硬件环境,检测本系统是否可以兼容。

易用性测试:这种方法主要是面向用户,检测用户是否很容易理解和使用系统。

6.2 功能测试

网上超市系统在经历最后的测试环节,需要检验本系统的功能安全性,功能适用性等内容,最终得出测试结论。

表6.1 功能测试数据表

测试内容 测试结果

系统功能的适用性 符合要求

系统功能的依从性 符合要求

系统功能的安全性 符合要求

系统功能的准确性 符合要求

系统功能的可操作性 符合要求

6.3 可用性测试

通常来说,一个布局合理,显示的内容无错别字,并具备合理正常的操作逻辑的系统往往很受欢迎,而且可以提升访问者的使用时间以及访问率。

表6.2 可用性测试数据表

测试内容 测试结果

检查系统的操作逻辑合不合理 合理

检查系统的功能布局合不合理 合理

检查系统能否支持鼠标和键盘 能

检查系统反馈的提示有无错别字 无

检查系统功能有无友好性 有

检查系统页面能否正常关闭 能

检查系统各数据项有无错误 无

检查系统有无提供帮助信息 有

6.4 测试结果分析

网上超市系统经过了编码阶段的单元测试,和最后的系统整体测试等测试后,对于用户要求的功能,本系统都进行了实现,各个模块都运行正常。在面对一些故障性问题时,本系统也有相应的应对办法,并且本系统可以保持24小时正常运转。因此,网上超市系统可以交付用户使用。

相关推荐
PGCCC15 分钟前
【PGCCC】Postgresql 存储设计
数据库·postgresql
码上一元2 小时前
SpringBoot自动装配原理解析
java·spring boot·后端
计算机-秋大田2 小时前
基于微信小程序的养老院管理系统的设计与实现,LW+源码+讲解
java·spring boot·微信小程序·小程序·vue
PcVue China2 小时前
PcVue + SQL Grid : 释放数据的无限潜力
大数据·服务器·数据库·sql·科技·安全·oracle
魔道不误砍柴功4 小时前
简单叙述 Spring Boot 启动过程
java·数据库·spring boot
锐策4 小时前
〔 MySQL 〕数据库基础
数据库·mysql
枫叶_v4 小时前
【SpringBoot】22 Txt、Csv文件的读取和写入
java·spring boot·后端
路在脚下@4 小时前
Springboot 的Servlet Web 应用、响应式 Web 应用(Reactive)以及非 Web 应用(None)的特点和适用场景
java·spring boot·servlet
杜杜的man5 小时前
【go从零单排】Closing Channels通道关闭、Range over Channels
开发语言·后端·golang
远歌已逝5 小时前
管理Oracle实例(二)
数据库·oracle