博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到🔎百套Python实战项目持续更新中~
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,给你参考意见,需要开题模板的可以私信留言告诉我❤️文末获取源码联系、项目参考文档分享❤️ ⚠️一定要先收藏⚠️
第四章 系统设计
到目前为止,市面上已经存在了各种各样的软件系统,从系统的分类着手,主要应用范围倾向于办公系统,娱乐系统,社交系统,然后下面有很多比较细的分支系统。很多系统已经经过了市场的考验,针对不同的业务场景已经开始出现了业务模块化,程序员减代码化的各种设计方式。到目前为止,当要设计一个系统的时候,首先根据业务模型基本上都可以在网上找到类似的模板,然后根据具体业务具体分析,进而实现具体功能,大众的就是最好的,毕竟符合市场主流的就代表着肯定符合常规操作流程。
4.1 系统设计目标
系统设计的时候,就要制定需要达成的目标。在功能上,要严格符合设计需求,不仅仅要减少操作步骤,也要符合预期。因此,在规范化的今天设计出符合项目要求的系统,必须要达到下面设定的目标。
第一个目标就是友好性:友好性主要体现在用户使用过程中,不会对系统的操作产生一种不满,减少操作者的愤怒,这是相当重要的一个体现。前几年好多软件在这个友好性方面失去了市场,就是因为在友好性这方面没有做好。国内互联网发展初期,软件设计的目的就是能用就行,至于友好性的对比,那是不存在的,因为硬件效率比较低,计算机属于新兴行业,所以大哥不说二哥,都是不友好的。随着计算机硬件的提升,很多开发者开始注意到要牺牲一定的计算器性能来提升友好性,因为计算机发展到现在,第一印象很重要,一个软件设计的不好看,会让大部分人对其产生质疑,所以要在友好性上面下很大功夫进行雕琢。
第二个目标就是安全性:安全性其实贯穿着整个软件行业的发展史,计算机就是为解决人类重复性计算以及数据存储的目的而诞生的,很多行业都需要计算机来进行计算,减少出错几率,并且把数据保留,可以实时查询,所以数据的安全性也很重要。
只要保证数据安全性的前提,开发出符合功能需求的友好界面操作,那么就达到了系统设计的目的。
4.2功能结构设计
本系统主要是基于数据的增加,修改,删除等操作,使用者能够通过提前设定的登录功能进入指定的操作区,这里对使用者设计的功能进行结构展示。
管理员功能结构图的绘制结果见图4-1。管理员登录进入本系统操作的功能包括管理商品,回复商品评价,为商品订单进行出餐,管理新闻和用户,管理客服聊天。
图4-1 管理员功能结构图
用户功能结构图的绘制结果见图4-2。用户登录进入本系统操作的功能包括管理购物车,下单购买商品,在线充值,查看商品评价,管理商品订单等。
图4-2 用户功能结构图
4.3数据库设计
如果说设计系统的功能很重要,那么设计该系统的数据库将更重要,毕竟系统服务于用户,数据库服务于系统,用户访问系统,操作系统的所有数据都要依赖于数据库,而系统的数据几乎都是保存在数据库中的,所以,一个高质量的程序,必然拥有一个安全,快速响应,稳定可靠的数据库。本系统的MySQL数据库可以通过SQL语言来实现对系统数据的管理,包括在指定表中插入数据,在规定的表中更改数据,以及删除指定表中的部分数据等操作。一般来说,像MySQL这样的关系型数据库,对于结构化查询语言SQL都能很好的进行支持。在编程中,通过合理运用SQL语言便能操作数据库的各种数据,真是非常方便快捷!
4.3.1 数据库概念设计
本节内容主要是使用图形的方式来描述数据库中的实体,每个实体的相应属性,还有实体之间的相互联系,常用的Visio工具即可满足绘制E-R图的需求。E-R图是由矩形,椭圆,菱形等图形元素组成,矩形框中主要写实体的名称,椭圆框中主要是登记该实体的属性,而菱形框中主要是登记实体之间的联系名称,最后使用实心线段把这些图形元素进行连接,即可完成E-R图的绘制。当初步得到一个E-R图时,需要进行检查,使用分析的方式去修改,重构E-R图,以达到消除数据冗余,或者是消除实体间联系冗余的目的。从而保持数据库的完整性,以及降低数据库维护上面的难度。
(1)使用Visio这样的常用的实体属性图绘制工具来绘制商品订单实体属性图,绘制结果见图4-3。
图4-3 商品订单实体属性图
(2)使用Visio这样的常用的实体属性图绘制工具来绘制商品实体属性图,绘制结果见图4-4。
图4-4 商品实体属性图
(3)使用Visio这样的常用的实体属性图绘制工具来绘制管理员实体属性图,绘制结果见图4-5。
图4-5 管理员实体属性图
(4)使用Visio这样的常用的实体属性图绘制工具来绘制用户实体属性图,绘制结果见图4-6。
图4-6 用户实体属性图
(5)绘制的上述实体间存在的联系见图4-7。
图4-7 实体间关系E-R图
4.3.2 数据库物理设计
本系统数据在数据库中都是通过各种二维表进行记录保存的,在数据库中设计这样的二维表也是比较重要的内容,因为它影响着数据的存储效率。在设计二维表也就是关系模型之前,一些有关二维表方面的常用概念需要进行充分了解。
关系:一张具体的数据表即表示关系,关系的名称与数据表的名称保持一致;
元组:数据表中,每行显示的数据即代表元组;
属性:数据表中,每列表示的数据即代表属性;
关键字:数据表中,为了与其他数据表进行区分,则需要在每张表中进行主键的设置;
通过上节内容可以知晓数据库中的各个实体,并通过一定方式把这些实体表示的内容进行数据表的转换,通常来说,每个实体都会对应一张具体的数据表,在本系统指定的数据库中创建命名好的数据库,才可以对数据表进行创建与设计。奶茶店自助点餐系统数据表设计结果展示如下:
表4.1 购物车表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
yonghu_id | 所属用户 | int(11) | 是 |
goods_id | 商品 | int(11) | 是 |
buy_number | 购买数量 | int(11) | 是 |
create_time | 添加时间 | timestamp | 是 |
update_time | 更新时间 | timestamp | 是 |
insert_time | 创建时间 | timestamp | 是 |
表4.2 客服聊天表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
yonghu_id | 提问用户 | int(11) | 是 |
chat_issue | 问题 | varchar(200) | 是 |
issue_time | 问题时间 | timestamp | 是 |
chat_reply | 回复 | varchar(200) | 是 |
reply_time | 回复时间 | timestamp | 是 |
zhuangtai_types | 状态 | int(255) | 是 |
chat_types | 数据类型 | int(11) | 是 |
insert_time | 创建时间 | timestamp | 是 |
表4.3 商品信息表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
goods_name | 商品名称 | varchar(200) | 是 |
goods_types | 商品类型 | int(11) | 是 |
goods_photo | 商品照片 | varchar(200) | 是 |
goods_kucun_number | 商品库存 | int(11) | 是 |
goods_old_money | 商品原价 | decimal(10,2) | 是 |
goods_new_money | 现价 | decimal(10,2) | 是 |
goods_clicknum | 点击次数 | int(11) | 是 |
shangxia_types | 是否上架 | int(11) | 是 |
goods_delete | 逻辑删除 | int(11) | 是 |
goods_content | 商品简介 | text | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.4 商品收藏表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
goods_id | 商品 | int(11) | 是 |
yonghu_id | 用户 | int(11) | 是 |
goods_collection_types | 类型 | int(11) | 是 |
insert_time | 收藏时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.5 商品评价表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
goods_id | 商品 | int(11) | 是 |
yonghu_id | 用户 | int(11) | 是 |
goods_commentback_text | 评价内容 | text | 是 |
reply_text | 回复内容 | text | 是 |
insert_time | 评价时间 | timestamp | 是 |
update_time | 回复时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.6 商品订单表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
goods_order_uuid_number | 订单号 | varchar(200) | 是 |
goods_id | 商品 | int(11) | 是 |
yonghu_id | 用户 | int(11) | 是 |
buy_number | 购买的数量 | int(200) | 是 |
goods_order_true_price | 实付价格 | decimal(10,2) | 是 |
goods_order_types | 订单类型 | int(11) | 是 |
goods_order_payment_types | 支付类型 | int(11) | 是 |
insert_time | 订单创建时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.7 新闻信息表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
news_name | 新闻名称 | varchar(200) | 是 |
news_photo | 新闻图片 | varchar(200) | 是 |
news_types | 新闻类型 | int(11) | 否 |
insert_time | 新闻发布时间 | timestamp | 是 |
news_content | 新闻详情 | text | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.8 管理员表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | bigint(20) | 否 |
username | 用户名 | varchar(100) | 否 |
password | 密码 | varchar(100) | 否 |
role | 角色 | varchar(100) | 是 |
addtime | 新增时间 | timestamp | 否 |
表4.9 用户表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
username | 账户 | varchar(200) | 是 |
password | 密码 | varchar(200) | 是 |
yonghu_name | 用户姓名 | varchar(200) | 是 |
yonghu_photo | 头像 | varchar(255) | 是 |
yonghu_phone | 用户手机号 | varchar(200) | 是 |
yonghu_id_number | 用户身份证号 | varchar(200) | 是 |
sex_types | 性别 | int(11) | 是 |
new_money | 余额 | decimal(10,2) | 是 |
yonghu_delete | 假删 | int(11) | 是 |
create_time | 创建时间 | timestamp | 是 |
4.4系统流程设计
从系统的角色上分析,每个用户角色都代表了不同的账号身份,而不同的身份则代表着功能的异同,所以首先要区分用户的角色身份问题。设置用户登录需要输入账号和密码,输入的信息必须与数据库里已经存在的账号密码信息进行比对,只有正确的账号和密码才可以进行下一步的页面显示操作,如果不正确的账号密码,则拒绝用户登录,也代表着用户没有继续访问的权限,系统是无法继续提供服务的。
图4-8 操作流程图
任何一个系统都有一个操作流程,本设计里面,对于任何数据的存储都有一定的合法要求,只有符合设定要求的数据才可以进行存储。具体步骤参考下图。
图4-9 添加信息流程图
数据的存储并不是一成不变的,当需要对已经存在的数据进行改变的时候,同样也遵循着操作流程,想更改数据首先要确定更改之前的数据是什么,然后输入新的数据是否合法,都要符合流程,只有合法数据才可以被更新到数据库里存储。具体步骤参考下图。
图4-10 修改信息流程图
删除操作,在数据存储方面是一件比较慎重的事件,很有可能会产生失误操作,所以一般删除操作的时候都要提示是否删除,确定删除才会更新数据库内容,实现删除目的。具体步骤参考下图。
图4-11删除信息流程图
第五章 系统实现
这里主要是对系统设计实现进行描述,通过系统的设计和数据库的设计,通过编码后变成了可以进行操作的界面,让一切想法变成了结果,通过文字和具体程序操作界面的截图之间的配合,可以把功能更直观的描述起来。
5.1管理员功能实现
5.1.1 商品信息管理
管理员进入如图5-1所示的商品信息管理界面之后,管理员点击信息显示栏中最右侧的修改,删除按钮可依次完成商品信息的修改,删除等操作,管理员也能在当前界面下架商品,增加商品的库存,减少商品的库存等。
图5-1 商品信息管理界面
5.1.2 商品评价管理
管理员进入如图5-2所示的商品评价管理界面之后,管理员点击信息显示栏中最右侧的回复,删除按钮可依次完成商品评价信息的回复,删除等操作。
图5-2 商品评价管理界面
5.1.3 商品订单管理
管理员进入如图5-3所示的商品订单管理界面之后,管理员点击信息显示栏右侧的删除,出餐按钮可依次完成商品订单的删除,出餐等操作。
图5-3 商品订单管理界面
5.1.4 用户管理
管理员进入如图5-4所示的用户管理界面之后,管理员点击信息显示栏中最右侧的修改,删除按钮可依次完成用户信息的修改,删除操作,管理员在本界面也能查询用户信息,重置用户的密码等。
图5-4 用户管理界面
5.2用户功能实现
5.2.1 商品信息
用户进入如图5-5所示的商品信息界面之后,用户可以通过商品的评价和商品的介绍来了解商品信息,用户购买商品可以通过加入购物车或点击立即购买按钮来实现,不过加入购物车需要用户亲自在购物车模块去完成订单提交操作,立即购买功能可以帮助用户在本界面就能下单购买商品。
图5-5 商品信息界面
5.2.2 订单确认
用户进入如图5-6所示的订单确认界面之后,用户点击确认支付就可以支付订单。
图5-6 订单确认界面
5.2.3 商品信息订单
用户进入如图5-7所示的商品信息订单界面之后,用户可以查看已评价订单,查看已取餐订单,查看已出餐订单,查看已支付订单,查看退款订单等,而用户可以在本模块进行订单退款,订单评价等操作。
图5-7 商品信息订单界面
源码获取
大家点赞、收藏、关注 ,让更多需要的同学看到
不同开发语言专栏推荐订阅:
👇下方有我的微信名片👇