乡村研学旅行小程序(论文源码调试讲解)

第4章 系统设计

4.1 系统设计的原则

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

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

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

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

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

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

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

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

4.2 系统结构设计

在系统结构设计上,经综合考虑还是选择比C/S更省资金的微信小程序架构模式,现如今浏览器已经实现了普及,并在技术上逐渐完善和成熟,它在节约软件开发成本的基础上,还能实现原本用专业软件操作才能实现的强大功能。总之,小程序架构是当下全新的,认可度高的系统构造技术。系统结构设计图通过绘制,效果展示如下:

图4-1 系统结构设计图

4.3功能结构设计

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

图4.3 管理员功能结构图

4.4数据库设计

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

4.4.1 数据库E-R图

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

(1)下图是用户实体和其具备的属性。

用户实体属性图

(2)下图是研学留言实体和其具备的属性。

研学留言实体属性图

(3)下图是研学报名实体和其具备的属性。

研学报名实体属性图

(4)下图是字典表实体和其具备的属性。

字典表实体属性图

(5)下图是景点实体和其具备的属性。

景点实体属性图

(6)下图是景点预约实体和其具备的属性。

景点预约实体属性图

(7)下图是景点收藏实体和其具备的属性。

景点收藏实体属性图

(8)下图是购物车实体和其具备的属性。

购物车实体属性图

(9)下图是客服聊天实体和其具备的属性。

客服聊天实体属性图

(10)下图是论坛实体和其具备的属性。

论坛实体属性图

(11)下图是商品实体和其具备的属性。

商品实体属性图

(12)下图是研学收藏实体和其具备的属性。

研学收藏实体属性图

(13)下图是景点评价实体和其具备的属性。

景点评价实体属性图

(14)下图是商品收藏实体和其具备的属性。

商品收藏实体属性图

(15)下图是商品评价实体和其具备的属性。

商品评价实体属性图

(16)下图是商品订单实体和其具备的属性。

商品订单实体属性图

(17)下图是研学实体和其具备的属性。

研学实体属性图

(18)下图是收货地址实体和其具备的属性。

收货地址实体属性图

4.4.2 数据库表结构

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

表4.1收货地址表

序号 列名 数据类型 说明 允许空
1 Id Int id
2 yonghu_id Integer 创建用户
3 address_name String 收货人
4 address_phone String 电话
5 address_dizhi String 地址
6 isdefault_types Integer 是否默认地址
7 insert_time Date 添加时间
8 update_time Date 修改时间
9 create_time Date 创建时间

表4.2购物车表

序号 列名 数据类型 说明 允许空
1 Id Int id
2 yonghu_id Integer 所属用户
3 shangpin_id Integer 商品
4 buy_number Integer 购买数量
5 create_time Date 添加时间
6 update_time Date 更新时间
7 insert_time Date 创建时间

表4.3客服聊天表

序号 列名 数据类型 说明 允许空
1 Id Int id
2 yonghu_id Integer 提问用户
3 chat_issue String 问题
4 issue_time Date 问题时间
5 chat_reply String 回复
6 reply_time Date 回复时间
7 zhuangtai_types Integer 状态
8 chat_types Integer 数据类型
9 insert_time Date 创建时间

表4.4字典表表

序号 列名 数据类型 说明 允许空
1 Id Int id
2 dic_code String 字段
3 dic_name String 字段名
4 code_index Integer 编码
5 index_name String 编码名字
6 super_id Integer 父字段id
7 beizhu String 备注
8 create_time Date 创建时间

表4.5论坛表

序号 列名 数据类型 说明 允许空
1 Id Int id
2 forum_name String 帖子标题
3 yonghu_id Integer 用户
4 users_id Integer 管理员
5 forum_content String 发布内容
6 super_ids Integer 父id
7 forum_types Integer 帖子类型
8 forum_state_types Integer 帖子状态
9 insert_time Date 发帖时间
10 update_time Date 修改时间
11 create_time Date 创建时间

表4.6景点表

序号 列名 数据类型 说明 允许空
1 Id Int id
2 jingdian_name String 景点名称
3 jingdian_uuid_number String 景点编号
4 jingdian_photo String 景点照片
5 jingdian_address String 景点位置
6 zan_number Integer
7 cai_number Integer
8 jingdian_xingji_types Integer 景点星级
9 jingdian_types Integer 景点类型
10 jingdian_kucun_number Integer 剩余门票数
11 jingdian_old_money BigDecimal 景点原价
12 jingdian_new_money BigDecimal 现价/张
13 jingdian_clicknum Integer 景点热度
14 jingdian_content String 景点介绍
15 shangxia_types Integer 是否上架
16 jingdian_delete Integer 逻辑删除
17 insert_time Date 录入时间
18 create_time Date 创建时间

表4.7景点收藏表

序号 列名 数据类型 说明 允许空
1 Id Int id
2 jingdian_id Integer 景点
3 yonghu_id Integer 用户
4 jingdian_collection_types Integer 类型
5 insert_time Date 收藏时间
6 create_time Date 创建时间

表4.8景点评价表

序号 列名 数据类型 说明 允许空
1 Id Int id
2 jingdian_id Integer 景点
3 yonghu_id Integer 用户
4 jingdian_commentback_text String 评价内容
5 insert_time Date 评价时间
6 reply_text String 回复内容
7 update_time Date 回复时间
8 create_time Date 创建时间

表4.9景点预约表

序号 列名 数据类型 说明 允许空
1 Id Int id
2 jingdian_order_uuid_number String 订单编号
3 jingdian_id Integer 景点
4 yonghu_id Integer 用户
5 buy_number Integer 购买数量
6 jingdian_order_time Date 预约日期
7 jingdian_order_true_price BigDecimal 实付价格
8 jingdian_order_types Integer 订单类型
9 jingdian_order_payment_types Integer 支付类型
10 insert_time Date 订单创建时间
11 create_time Date 创建时间

表4.10商品表

序号 列名 数据类型 说明 允许空
1 Id Int id
2 shangpin_name String 商品名称
3 shangpin_uuid_number String 商品编号
4 shangpin_photo String 商品照片
5 zan_number Integer
6 cai_number Integer
7 shangpin_types Integer 商品类型
8 shangpin_kucun_number Integer 商品库存
9 shangpin_old_money BigDecimal 商品原价
10 shangpin_new_money BigDecimal 现价
11 shangpin_clicknum Integer 商品热度
12 shangpin_content String 商品介绍
13 shangxia_types Integer 是否上架
14 shangpin_delete Integer 逻辑删除
15 insert_time Date 录入时间
16 create_time Date 创建时间

表4.11商品收藏表

序号 列名 数据类型 说明 允许空
1 Id Int id
2 shangpin_id Integer 商品
3 yonghu_id Integer 用户
4 shangpin_collection_types Integer 类型
5 insert_time Date 收藏时间
6 create_time Date 创建时间

表4.12商品评价表

序号 列名 数据类型 说明 允许空
1 Id Int id
2 shangpin_id Integer 商品
3 yonghu_id Integer 用户
4 shangpin_commentback_text String 评价内容
5 insert_time Date 评价时间
6 reply_text String 回复内容
7 update_time Date 回复时间
8 create_time Date 创建时间

表4.13商品订单表

序号 列名 数据类型 说明 允许空
1 Id Int id
2 shangpin_order_uuid_number String 订单编号
3 address_id Integer 收货地址
4 shangpin_id Integer 商品
5 yonghu_id Integer 用户
6 buy_number Integer 购买数量
7 shangpin_order_true_price BigDecimal 实付价格
8 shangpin_order_courier_name String 快递公司
9 shangpin_order_courier_number String 快递单号
10 shangpin_order_types Integer 订单类型
11 shangpin_order_payment_types Integer 支付类型
12 insert_time Date 订单创建时间
13 create_time Date 创建时间

表4.14研学表

序号 列名 数据类型 说明 允许空
1 Id Int id
2 yanxue_name String 研学标题
3 yanxue_uuid_number String 研学编号
4 yanxue_photo String 研学照片
5 yanxue_fuzeren String 负责人
6 yanxue_phone String 联系方式
7 yanxue_address String 研学路线
8 zan_number Integer
9 cai_number Integer
10 yanxue_types Integer 研学类型
11 yanxue_kucun_number Integer 剩余可参与人数
12 yanxue_time Date 出发时间
13 yanxue_clicknum Integer 研学热度
14 yanxue_content String 研学内容
15 shangxia_types Integer 是否上架
16 yanxue_delete Integer 逻辑删除
17 insert_time Date 录入时间
18 create_time Date 创建时间

表4.15研学收藏表

序号 列名 数据类型 说明 允许空
1 Id Int id
2 yanxue_id Integer 研学
3 yonghu_id Integer 用户
4 yanxue_collection_types Integer 类型
5 insert_time Date 收藏时间
6 create_time Date 创建时间

表4.16研学留言表

序号 列名 数据类型 说明 允许空
1 Id Int id
2 yanxue_id Integer 研学
3 yonghu_id Integer 用户
4 yanxue_liuyan_text String 留言内容
5 insert_time Date 留言时间
6 reply_text String 回复内容
7 update_time Date 回复时间
8 create_time Date 创建时间

表4.17研学报名表

序号 列名 数据类型 说明 允许空
1 Id Int id
2 yanxue_yuyue_uuid_number String 报名编号
3 yanxue_id Integer 研学
4 yonghu_id Integer 用户
5 yanxue_yuyue_text String 报名理由
6 insert_time Date 研学报名时间
7 yanxue_yuyue_yesno_types Integer 报名状态
8 yanxue_yuyue_yesno_text String 审核回复
9 yanxue_yuyue_shenhe_time Date 审核时间
10 create_time Date 创建时间

表4.18用户表

序号 列名 数据类型 说明 允许空
1 Id Int id
2 yonghu_name String 用户姓名
3 yonghu_phone String 用户手机号
4 yonghu_id_number String 用户身份证号
5 yonghu_photo String 用户头像
6 yonghu_email String 用户邮箱
7 new_money BigDecimal 余额
8 jinyong_types Integer 账户状态
9 create_time Date 创建时间

表4.19管理员表

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

5.系统实现

系统实现这个章节的内容主要还是展示系统的功能界面设计效果,在实现系统基本功能,比如修改,比如添加,比如删除等管理功能的同时,也显示出系统各个功能的界面实现效果,该部分内容一方面与前面提到的系统分析,系统设计的内容相呼应,另一方面也是一个实际成果的展示。

5.1管理员功能实现

5.1.1 乡村研学管理

此页面让管理员管理乡村研学的数据,乡村研学管理页面见下图。此页面主要实现乡村研学的增加、修改、删除、查看的功能。

图5-1 乡村研学管理页面

5.1.2 商品信息管理

商品信息管理页面提供的功能操作有:新增商品,修改商品,删除商品操作。下图就是商品信息管理页面。

图5.3 商品信息管理页面

5.1.3商品类型管理

商品类型管理页面显示所有商品类型,在此页面既可以让管理员添加新的商品信息类型,也能对已有的商品类型信息执行编辑更新,失效的商品类型信息也能让管理员快速删除。下图就是商品类型管理页面。

图5.4 商品类型列表页面

5.2 用户功能介绍

5.2.1 景点管理

如图5.4显示的就是景点管理页面,此页面提供给用户的功能有:查看景点。

图5.4 乡村研学管理页面

5.2.2 商品管理

如图5.5显示的就是商品管理页面,此页面提供给用户的功能有:查看商品。

图5.5 商品管理页面


相关推荐
、枉然2 分钟前
JavaEE学习导读
java·学习·java-ee
yqcoder14 分钟前
Express + MongoDB 实现文件上传
数据库·mongodb·express
若云止水18 分钟前
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_init_cycle 函数 - 详解(10)
数据库·nginx·ubuntu
m0_7482480219 分钟前
【MySQL】表空间丢失处理(Tablespace is missing for table 错误处理)
数据库·mysql
独行soc29 分钟前
8个Linux进程管理命令详解及示例(三):pgrep和flock命令
java·linux·运维·服务器·面试
zhengtianzuo30 分钟前
天佐.乾坤袋 基于抽屉式文件存储的NoSql数据库
数据库·c++·nosql
布谷歌1 小时前
缓存过期的惰性删除(Lazy Deletion)策略
java·前端·spring boot·spring·缓存
奥顺互联_老张1 小时前
2025影视站群程序实战:search聚合版/无缓存泛页面刷新不变
数据库·算法·缓存·开源·php
北珣.1 小时前
自动化测试无法启动(java.net.SocketException)
java·测试工具