摘 要
通过移动互联网这几年的发展,单独的开发某些APP已经到了日暮西山的地步,原因不在于单个的APP功能丰富与否,而是因为用户生态体系的问题。使用智能手机的用户经过多年的使用习惯,已经越来越不喜欢安装各种的APP,除了正常生活和工作所必须的APP,不喜欢因为喜欢某些内容而被强制安装APP软件了。最近几年,随着微信生态的布局,通过开发微信小程序接口,让广大用户可以通过微信直接访问小程序,不需要去专门安装那些APP,这一点让很多用户喜爱,基本上只要能转向微信生态的业务,许多企业都已经开始拥抱微信小程序。**本课题就是研究和实现一款基于微信小程序的研学自习室选座与门禁系统。
研学自习室选座与门禁系统有用户角色,用户在论坛模块通过发帖与评论帖子的方式进行信息讨论,用户也能对账户进行在线充值,查看座位信息并预定需要的座位,管理座位预定的订单,查看公告等。**该系统采用了Mysql数据库,采用微信开发者工具来对用户小程序端进行了开发。
研学自习室选座与门禁系统让用户在小程序端查看座位,预定座位,支付座位价格,该系统让用户预定座位,查看座位预定订单等信息变得越来越方便。
4.2 功能结构设计
图4.1即为设计的用户功能结构,用户权限操作的功能包括在论坛模块通过发帖与评论帖子的方式进行信息讨论,用户也能对账户进行在线充值,查看座位信息并预定需要的座位,管理座位预定的订单,查看公告等。
图4.1 用户功能结构
4.3 数据库设计
研学自习室选座与门禁系统运行中产生的数据需要按照提前设置的存储规则进行保存,设计出一个符合项目的最优数据存储格式,因为它能减少用户的等待时间,还可以对系统的请求在最短时间内进行响应。所以,对数据库设计时,需要对功能需求进行详细的拆分,以及对业务状态的细分,然后设计具体的存储规则,保证数据库能正常运作,缩短数据处理时间,并在一定程度上降低数据冗余,节省存储空间。
4.3.1 数据库概念设计
实体-联系图还有一个名称即E-R图,是Entity Relationship Diagram各英文单词首字母的缩写,它这种概念模型通常用于对现实世界进行描述。同时它还是一种能够直观表达数据中实体,联系,属性的有效手段。绘制E-R图能够选择的工具也有很多,但是Office Visio 这款软件在E-R图的绘制上一般都是作为首选工具,因为它是基于可视化处理,使用它创建E-R图非常简单。使用基本的E-R图构成元素,比如椭圆,菱形,矩形,还有实线段来表达对应的信息,椭圆代表属性,即实体的特征,矩形代表实体,即数据库中的一个具体数据表,菱形代表实体中相互关系,实线段主要是完成椭圆,矩形,菱形的连接。
(1)图4.4即为座位这个实体所拥有的属性值。
图4.4 座位实体属性图
(2)图4.5即为座位订单这个实体所拥有的属性值。
图4.5 座位订单实体属性图
(3)图4.6即为用户这个实体所拥有的属性值。
图4.6 用户实体属性图
(4)图4.7即为公告信息这个实体所拥有的属性值。
图4.7 公告信息实体属性图
(5)图4.8即为上面介绍的实体中存在的联系。
图4.8 实体间关系E-R图
4.3.2 数据库物理设计
本小节主要任务即是根据上述内容进行数据存储结构的设计,实体的属性就用来表示字段名称,不同的字段表示的数据类型以及取值都不相同,以及该表各个字段是否能够保持空等进行说明,设计完成一张数据表的结构之后,在保存时同样要命名,尽量选择英文名称进行命名并保存,还不容易导致系统出错。接下来就对设计的表进行简单说明。
表4.1 论坛表
字段 注释 类型 空
id (主键) 主键 int(11) 否
forum_name 帖子标题 varchar(200) 是
yonghu_id 用户 int(11) 是
users_id 管理员 int(11) 是
forum_content 发布内容 text 是
super_ids 父id int(11) 是
forum_state_types 帖子状态 int(11) 是
insert_time 发帖时间 timestamp 是
update_time 修改时间 timestamp 是
create_time 创建时间 timestamp 是
表4.2 公告信息表
字段 注释 类型 空
id (主键) 主键 int(11) 否
news_name 公告标题 varchar(200) 是
news_types 公告类型 int(11) 是
news_photo 公告图片 varchar(200) 是
insert_time 添加时间 timestamp 是
news_content 公告详情 text 是
create_time 创建时间 timestamp 是
表4.3 管理员表
字段 注释 类型 空
id (主键) 主键 bigint(20) 否
username 用户名 varchar(100) 否
password 密码 varchar(100) 否
role 角色 varchar(100) 是
addtime 新增时间 timestamp 否
表4.4 用户表
字段 注释 类型 空
id (主键) 主键 int(11) 否
username 账户 varchar(200) 是
password 密码 varchar(200) 是
yonghu_name 用户姓名 varchar(200) 是
yonghu_photo 头像 varchar(255) 是
sex_types 性别 int(11) 是
yonghu_phone 联系方式 varchar(200) 是
yonghu_email 邮箱 varchar(200) 是
new_money 余额 decimal(10,2) 是
yonghu_delete 假删 int(11) 是
create_time 创建时间 timestamp 是
表4.5 座位表
字段 注释 类型 空
id (主键) 主键 int(11) 否
zuowei_name 座位名称 varchar(200) 是
zuowei_photo 座位照片 varchar(200) 是
zuowei_types 座位类型 int(11) 是
zuowei_shijian 开始时间 varchar(200) 是
zuowei_new_money 现价 decimal(10,2) 是
zuowei_number 座位 int(11) 是
zuowei_clicknum 点击次数 int(11) 是
zuowei_delete 逻辑删除 int(11) 是
zuowei_content 座位简介 text 是
create_time 创建时间 timestamp 是
表4.6 座位订单表
字段 注释 类型 空
id (主键) 主键 int(11) 否
zuowei_order_uuid_number 订单号 varchar(200) 是
zuowei_id 座位 int(11) 是
yonghu_id 用户 int(11) 是
zuowei_order_true_price 实付价格 decimal(10,2) 是
zuowei_order_types 订单类型 int(11) 是
zuowei_order_payment_types 支付类型 int(11) 是
buy_zuowei_number 购买的座位 varchar(200) 是
buy_zuowei_time 订购日期 date 是
insert_time 订单创建时间 timestamp 是
create_time 创建时间 timestamp 是