林业产品推荐:Spring Boot技术解读
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 创建时间
userid bigint(20) 否 用户id
address varchar(200) 否 地址
name varchar(200) 否 收货人
phone varchar(200) 否 电话
isdefault varchar(200) 否 是否默认地址[是/否]
表4.2 购物车信息表
字段 类型 空 默认 注释
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.3 客服聊天信息表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
userid bigint(20) 否 用户id
adminid bigint(20) 是 NULL 管理员id
ask longtext 是 NULL 提问
reply longtext 是 NULL 回复
isreply int(11) 是 NULL 是否回复
表4.4 用户信息表
字段 类型 空 默认 注释
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 余额
表4.5 商品资讯信息表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
title varchar(200) 否 标题
introduction longtext 是 NULL 简介
picture varchar(200) 否 图片
content longtext 否 内容
表4.6 订单信息表
字段 类型 空 默认 注释
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.7 商品分类信息表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
addtime timestamp 否 CURRENT_TIMESTAMP 创建时间
shangpinfenlei varchar(200) 否 商品分类
表4.8 商品评价信息表
字段 类型 空 默认 注释
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.9 商品信息表
字段 类型 空 默认 注释
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.10 管理员信息表
字段 类型 空 默认 注释
id (主键) bigint(20) 否 主键
username varchar(100) 否 用户名
password varchar(100) 否 密码
role varchar(100) 是 管理员 角色
addtime timestamp 否 CURRENT_TIMESTAMP 新增时间