基于微信小程序的中国各地美食推荐平台的设计与实现springboot+论文源码调试讲解

第4章 系统设计

4.1 系统设计的原则

在系统设计过程中,也需要遵循相应的设计原则,这些设计原则可以帮助设计者在短时间内设计出符合设计规范的设计方案。设计原则主要有可靠性,安全性,可定制化,可扩展性,可维护性,可升级性以及客户体验等原则。下面就对这些原则进行简要阐述。

可靠性:一个软件是否可靠决定了其是否被用户使用,设计不可靠的软件,用户很容易就遗弃;

安全性:程序软件承担了信息的保存与管理等事务,安全性不足的软件会导致使用者承担巨大的损失;所以系统安全也是需要考虑进入的;

可定制化:市场环境从来都不是一直固定不变,面对客户群体的改变,以及使用环境的改变,市场需求的改变等因素,程序软件也要易于调整以适应各种变化;

可扩展性:程序软件在运行使用期间,也需要及时引进当下的新技术来进行系统优化,主要就是在系统功能层面,系统性能层面上进行相应的扩展,只有这样才能让系统在实际生活中继续占有市场;

可维护性:程序软件的维护需要一定量的资金,不管是排除现有程序错误,还是变更软件的现有需求,都需要在软件技术上投入一定资金,所以易于维护的软件程序就可以降低技术层面的资金消耗;

可升级性:程序软件的投入使用,会面临用户数量增多的情况,用户对软件的使用率也会提升,所以系统面临这种情况,仍然需要通过升级保持性能的合理,这样才能够适应市场;

客户体验:设计出来的程序软件在界面上不能够太复杂,要遵循界面设计的原理设计出简单,方便操作的功能操作界面,让用户易于接受软件,并乐于使用软件提供的功能。

4.2 功能结构设计

在管理员功能模块确定下来的基础上,对管理员各个功能进行设计,确定管理员功能的详细模块。绘制的管理员功能结构见下图。

图4-2 管理员功能结构图

4.3 数据库设计

与功能结构设计一样,数据库设计也是程序开发不可避免的设计环节,数据库设计最主要的目的就是帮助运行程序存储相应的数据信息。数据库设计包含的内容有数据表结构的设计,也包含了数据库E-R图的设计。

4.3.1 数据库E-R图

在绘制E-R图之前,先要找出数据库的实体,明确各个实体具有的属性,比如用户信息这个实体,它具备的属性包括了用户的姓名属性,用户的密码属性,用户的创建时间属性等,所以明确了用户这个实体,以及用户实体具备的属性之后,就需要根据这些信息绘制用户实体对应的实体属性图了。绘制软件选用当下认可度高,使用范围广,操作便利的微软旗下的Visio工具。

(1)管理员实体属性图通过Visio工具绘制,绘制结果展示如下:

图4-4 管理员实体属性图

(2)注册用户实体属性图通过Visio工具绘制,绘制结果展示如下:

图4-5 注册用户实体属性图

(3)美食类型实体属性图通过Visio工具绘制,绘制结果展示如下:

图4-6 美食类型实体属性图

4.3.2 数据库表结构

在进行这部分设计之前,需要明白和掌握数据类型以及各个数据类型的长度范围等知识,因为在一张具体的数据表中,为了方便理解,这里就举个简单的例子。比如用户信息表,这个表格的字段就是用户这个实体具备的属性,这时就需要对字段进行数据类型,以及字段长度的设置,也要设置一个主键来作为用户信息表的唯一标识。这些都是数据库表结构设计需要完成的内容。根据中国各地美食推荐平台的功能设计以及数据库设计要求,展示该系统的数据表结构。

1地址表

序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 addtime Date 创建时间 是
3 userid Integer 用户id 是
4 address String 地址 是
5 name String 收货人 是
6 phone String 电话 是
7 isdefault String 是否默认地址是/否 是

2美食分享评论表

序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 addtime Date 创建时间 是
3 refid Integer 关联表id 是
4 userid Integer 用户id 是
5 nickname String 用户名 是
6 content String 评论内容 是
7 reply String 回复内容 是

3美食信息评论表

序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 addtime Date 创建时间 是
3 refid Integer 关联表id 是
4 userid Integer 用户id 是
5 nickname String 用户名 是
6 content String 评论内容 是
7 reply String 回复内容 是

4收藏表

序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 addtime Date 创建时间 是
3 userid Integer 用户id 是
4 refid Integer 收藏id 是
5 tablename String 表名 是
6 name String 收藏名称 是
7 picture String 收藏图片 是
8 type String 类型(1:收藏,21:赞,22:踩) 是
9 inteltype String 推荐类型 是

5购物车表

序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 addtime Date 创建时间 是
3 tablename String 商品表名 是
4 userid Integer 用户id 是
5 goodid Integer 商品id 是
6 goodname String 商品名称 是
7 picture String 图片 是
8 buynumber Integer 购买数量 是
9 price float 单价 是
10 discountprice float 会员价 是
11 shangjiazhanghao String 商户名称 是

6商家表

序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 addtime Date 创建时间 是
3 shangjiazhanghao String 商家账号 是
4 mima String 密码 是
5 shangjiamingcheng String 商家名称 是
6 tupian String 图片 是
7 lianxiren String 联系人 是
8 lianxidianhua String 联系电话 是
9 shangjiadizhi String 商家地址 是
10 money float 余额 是

7管理员表

序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 username String 用户名 是
3 password String 密码 是
4 role String 角色 是
5 addtime Date 新增时间 是

8订单表

序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 addtime Date 创建时间 是
3 orderid String 订单编号 是
4 tablename String 商品表名 是
5 userid Integer 用户id 是
6 goodid Integer 商品id 是
7 goodname String 商品名称 是
8 picture String 商品图片 是
9 buynumber Integer 购买数量 是
10 price float 价格/积分 是
11 discountprice float 折扣价格 是
12 total float 总价格/总积分 是
13 discounttotal float 折扣总价格 是
14 type Integer 支付类型 是
15 status String 状态 是
16 address String 地址 是
17 tel String 电话 是
18 consignee String 收货人 是
19 logistics String 物流 是
20 shangjiazhanghao String 商户名称 是

9美食分享表

序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 addtime Date 创建时间 是
3 meishimingcheng String 美食名称 是
4 tupian String 图片 是
5 meishileixing String 美食类型 是
6 tuijianzhishu String 推荐指数 是
7 meishitese String 美食特色 是
8 renjunxiaofei String 人均消费 是
9 dakadidian String 打卡地点 是
10 meishixiangqing String 美食详情 是
11 yonghuzhanghao String 用户账号 是
12 yonghuxingming String 用户姓名 是
13 sfsh String 是否审核 是
14 shhf String 审核回复 是
15 thumbsupnum Integer 赞 是
16 crazilynum Integer 踩 是

10用户表

序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 addtime Date 创建时间 是
3 yonghuzhanghao String 用户账号 是
4 mima String 密码 是
5 yonghuxingming String 用户姓名 是
6 touxiang String 头像 是
7 xingbie String 性别 是
8 shoujihaoma String 手机号码 是
9 money float 余额 是

11美食信息表

序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 addtime Date 创建时间 是
3 meishimingcheng String 美食名称 是
4 tupian String 图片 是
5 meishileixing String 美食类型 是
6 tuijianzhishu String 推荐指数 是
7 meishitese String 美食特色 是
8 diqu String 地区 是
9 chiboshipin String 吃播视频 是
10 meishixiangqing String 美食详情 是
11 shangjiazhanghao String 商家账号 是
12 shangjiamingcheng String 商家名称 是
13 thumbsupnum Integer 赞 是
14 crazilynum Integer 踩 是
15 clicktime datetime 最近点击时间 是
16 clicknum Integer 点击次数 是
17 price float 价格 是

12美食类型表

序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 addtime Date 创建时间 是
3 meishileixing String 美食类型 是

第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 我的页面

相关推荐
IT枫斗者枫哥2 小时前
MyBatis一对多分页:LIMIT 20,为什么凑不齐20个订单?
java·数据库
代码方舟2 小时前
Java数据工程:利用天远全网运营商三要素优化线上实名认证合规体验
java·人工智能
BBmmo2 小时前
我的 Java 学习笔记 · 第 7 篇:泛型与通配符
java
独泪了无痕2 小时前
Hutool之RandomUtil:随机数生成的终极利器
java·后端
花开路口2 小时前
深入理解 Java/Kotlin 协变与逆变
java·kotlin
运行时异常2 小时前
【WMS 仓储系统集成 AI Agent 实战】第 7 讲:Vue3 前端工程化——Token 刷新锁、Markdown 渲染踩坑与权限体系
java
她的男孩2 小时前
开放接口限流从 20 改到 200 还是每分钟 20 次:拆完防重放+幂等+限流,我找到 5 个静默失效的坑
java·后端·架构
天天被压力2 小时前
【Python 量化取数指南 #13】Python 把行情落库:sqlite 一键存,回测随用随取
java·人工智能·python
天天被压力2 小时前
【Python 量化取数指南 #14】Python 清洗行情数据:复权停牌对齐,回测不翻车
java·人工智能·python
独泪了无痕2 小时前
开发利器Hutool之MapUtil的使用
java·后端