计算机技术的飞速发展带动了各种管理软件的兴起,对我们的工作管理、生活都是很大的帮助,本健身房私教预约微信小程序是采用小程序技术开发的对课程购买、预约工作的信息化、数字化管理,以改变传统的纸质预约方式,本健身房私教预约微信小程序从管理员,用户,教练三个角色来进行功能设计,本论文详细的介绍了健身房私教预约微信小程序的设计过程,并对课题的需求和背景意义目的进行分析介绍,从面向对象的方面进行开发设计,对设计课题的可行性进行详细分析,最后完成本健身房私教预约微信小程序的实现。
本健身房私教预约微信小程序是运行在Eclipse软件上,采用的框架为SSM。主要的功能包括管理员可以对课程管理,对预约管理,对课程购买管理,对课程评价管理和对用户管理,对留言信息管理,用户可以实现个人资料管理,对课程购买、对课程预约;教练可以审核用户的预约以及上传新的课程等。
系统分析的目的是为了保证系统开发的实用性,保证系统开发设计后会有市场,会有需求,不会造成系统设计的浪费。本系统开发的角色包括三个方面分别是管理员、教练和注册用户,了解不同的角色对于不同的功能进行设计,开发出适合他们的系统,并且把开发成本降到最低。
首先应该先对整个系统的功能进行一个详细的描述,然后在这个描述上分析用户们的新需求,然后对这个描述进行完善,最后对所有的需求进行说明,编写系统说明书。
通过大学几年的认真学习,对这次开发所用的技术都经过了详细的学习,并且平常也经过了几个小项目的多次实践都可以完美运行完成,所以对于这次开发还是很有信心的。而且Java语言兼容性很强,对于开发也减少一定的难度,在技术分析上,是可以开发设计的。
本健身房私教预约微信小程序在开发的时候遵照界面友好设计,功能操作过程简单不繁琐,用户只要按照功能的字面意思就能轻松进行系统操作,非常简单,在操作分析上,是可以进行开发设计的。
经济方面不需要资金的支出,在开发中所使用的软件都是开源的,系统的开发也只需要一人完成。
主要的功能涉及到三个方面,管理员、教练、用户。管理员管理课程信息、课程类别信息、用户信息、教练信息、课程购买信息、课程预约信息、留言信息等。管理员用例图如下图3.1所示:
图3.1管理员用例图
教练负责课程信息、课程购买信息、课程预约信息等。教练用例图如下图3.2所示:
图3.2教练用例图
用户负责浏览课程信息,进行课程购买和课程预约以及可以留言。用户用例图如下图3.3所示:
图3.3用户用例图
系统性能方面一般指系统的运行、安全、扩展性、兼容性、实用性等方面的问题。考虑到系统除了功能方面以外的所有问题才可以使系统的分析完整,也是保证系统可以顺利开发的基础。
1.在开发技术、语言、环境方面的选择上要注意先进性。因为现在科技发展的速度很快,为了延长系统的生命就需要选择更热门的开发语言、技术和环境。本系统采用SSM框架,SSM框架可以支持多种运行环境、兼容性强,可以使系统在运行中选择多种运行软件;
2.在保证系统的安全上要注意权限问题和个人资料的问题。不同权限只能管理属于自己权限的功能,这种情况下就需要做好权限划分,所有权限都不能越权操作,管理员为最高权限可以负责所有信息的管理、审核;
3.在系统的扩展性上来说要注意接口的预留。由于时间、能力、技术水平等问题,现阶段开发的系统考虑不到更长远的事情,所以预留接口可以保证后期系统的升级,也可以方便后期开发人员进行功能扩展;
4.在系统的运行上来说需要注意运行的稳定问题。多人访问系统和单人访问系统效果肯定不一样,当多人在同时操作系统时要注意系统的稳定不出错和不会出现Bug的问题;
5.在系统的实用性问题上要注意系统功能的设计。系统要实用还要功能丰富,所以就需要在市场上多次调研,多次参考用户的需求和建议设计更符合用户要求的系统。
一个受欢迎的系统必然有一个好的系统操作流程,简单、友好的操作流程才可以使用户更快速的满足自己的要求。系统的操作流程正确系统的数据才可以被正确调用。从数据的来源到去处进行分析形成数据的闭环。本系统的操作流程为教练发布课程,用户购买课程、预约课程,教练审核。本系统的操作流程图如下图3.4所示:
图3.4系统操作流程
功能结构为系统功能的展示,一般采用树形图进行系统功能的结构描述。第一层为系统的名称,第二层为划分的功能界面,第三层为功能界面里的详细功能。本系统的功能结构图第一层为健身房私教预约微信小程序,第二层为用户、教练、管理员,第三层为相对应的具体功能。系统功能结构图如下图4.1所示:
图4.1系统功能结构图
任何一个系统中,数据库都是非常重要的一部分,因为数据库做为系统的数据存储,保障着系统的安全,如果数据库出错,那系统肯定也就出错。所以要选择适合自己系统的数据库,然后建立表结构,使系统有更好的关联性,保密性,和完整性。用户进行数据访问时候只能通过正规的通道获取信息,防止非法获取用户数据,必须保证用户的数据安全,这就需要设计数据库的时候进行安全验证。
从用户的角度进行分析,设计出一个符合用户要求的数据库,把这个设计过程分开,把每个实体都单独进行,把复杂问题简单化,降低设计的难度,数据库的设计分为三步进行,第一步就是数据库的概念设计,第二步就是数据库的逻辑设计,把概念设计转换到逻辑设计,第三步,根据逻辑设计具体设计出数据库表和建立出数据库。
数据库ER图设计又称为数据库逻辑结构设计,数据库逻辑结构主要是确定物理架构,然后对数据结构进行构造,建立实体和表之间的关系。数据库ER图是采用不同的图形来描述数据和数据的字段。数据库ER图设计是数据库设计的第一步,只有划分好系统的数据以及数据的字段才可以建立正确的数据库。本系统的数据主要为管理员信息、课程购买信息、课程信息、用户信息、课程预约信息等。
1.用户需要注册成功后才可以形成,用户信息的ER图如下图4.2所示:
图4.2用户信息ER图
2.管理员为系统开发者设置的。管理员信息ER图如下图4.3所示:
图4.3管理员信息ER图
3.私教课程信息需要教练添加后才会展示。私教课程信息ER图如下图4.4所示:
图4.4私教课程信息ER图
4.课程购买信息为用户付款后产生的。课程购买信息ER图如下图4.5所示:
图4.5课程购买信息ER图
5.课程预约信息为用户预约课程后才会产生。课程预约信息ER图如下图4.6所示:
图4.6课程预约ER图
每个实体之间的具体联系需要考虑到表面的联系和内在的联系,也可能每个实体之间会存在多个联系,单独ER模式完全了以后 ,就还需要把所有的单独模式整合起来,做一个全局的模式概念机构。全局模式不仅要支持所有单独的ER模式,还要合理的展示出了完整的,相匹配的每一个单独的概念结构,
1.确定的公共实体模式
开始先要把各个局部框架中的公共实体类型先确定起来,作为整合合并模式的一个基础。这这个过程中,需要根据实体类型名,和实体类型键来认定公共实体类型的。正常情况下都是先 把不同名的实体类型先作为公共实体类似的一个后补。把同名的实体类型作为另一个后补。
2.全局ER模式架构的合并整合
合并的前提是,先两个两个的合并,先合并其中有关联的局部结构,从公共实体类型开发,最后在何必独立的局部架构,最后整合成完整的架构,整合到一起。
3.消除冲突
一般情况下,常见的冲突有三种,一种是命名冲突,一种是结构冲突,一种是属性的冲突。把所有的局部ER模式整合到一起的时候,最主要解决的问题就是消除冲突,使他们能共同想结合,然后才能组成统一的概念模型。
4.全局ER模式优化
整合完成了全局ER模式以后并不是所有工作就完成了,还有最后一步,也就是最重要的一个步骤,就是对整合完成的ER模式进行优化测试。这样是为了提高整合以后数据库的工作效率,还要对各个模式结构进行测试,更一步优化性能。一个完美的ER全局模式,不仅仅需要能精准无误,详细的处理用户需求,还需要满足以下的条件,实体类型的个数要尽量精简,能少则少。实体类型的熟悉个数也要最少。实体间的联系也要无缝对接,这样才算一个完美的全局模式。本系统的全局ER图如下图4.7所示:
图4.7全局ER图
一切基础已做好,就可以按照前面的设计,制作出具体的数据库表了,本健身房私教预约微信小程序的数据库表如下表4.1-4.14所示:
表4.1 config
序号 列名 数据类型 长度 小数位 标识 主键 外键 允许空 默认值 说明
1 id bigint 20 是 是 否 auto_increment
2 name varchar 100 否
3 value varchar 100 是
表4.2 discusssijiaokecheng
序号 列名 数据类型 长度 小数位 标识 主键 外键 允许空 默认值 说明
1 id bigint 20 是 是 否 auto_increment
2 addtime timestamp 否 CURRENT
3 refid bigint 20 否
4 userid bigint 20 否
5 nickname varchar 200 是
6 content longtext 否
7 reply longtext 是
表4.3 jiaolian
序号 列名 数据类型 长度 小数位 标识 主键 外键 允许空 默认值 说明
1 id bigint 20 是 是 否 auto
2 addtime timestamp 否 CURRENT
3 jiaoliangonghao varchar 200 否
4 mima varchar 200 否
5 jiaolianxingming varchar 200 是
6 xingbie varchar 200 是
7 touxiang varchar 200 是
8 nianling int 11 是
9 dengji varchar 200 是
10 gerenjianjie varchar 200 是
11 lianxifangshi varchar 200 是
12 shenfenzheng varchar 200 是
表4.4 kechenggoumai
序号 列名 数据类型 长度 小数位 标识 主键 外键 允许空 默认值 说明
1 id bigint 20 是 是 否 auto
2 addtime timestamp 否 CURRENT
3 dingdanbianhao varchar 200 是
4 kechengmingcheng varchar 200 是
5 leixing varchar 200 是
6 tupian varchar 200 是
7 jieshu varchar 200 是
8 kechengjiage varchar 200 是
9 goumairiqi date 是
10 jiaoliangonghao varchar 200 是
11 jiaolianxingming varchar 200 是
12 yonghuming varchar 200 是
13 xingming varchar 200 是
14 lianxidianhua varchar 200 是
15 sfsh varchar 200 是 否
16 shhf longtext 是
17 ispay varchar 200 是 未支付
18 userid bigint 20 是
表4.5 kechengleixing
序号 列名 数据类型 长度 小数位 标识 主键 外键 允许空 默认值 说明
1 id bigint 20 是 是 否 auto_increment
2 addtime timestamp 否 CURRENT_TIMESTAMP
3 leixing varchar 200 否
表4.6 kechengpingjia
序号 列名 数据类型 长度 小数位 标识 主键 外键 允许空 默认值 说明
1 id bigint 20 是 是 否 auto
2 addtime timestamp 否 CURRENT_TIMESTAMP
3 dingdanbianhao varchar 200 是
4 kechengmingcheng varchar 200 是
5 tupian varchar 200 是
6 goumairiqi varchar 200 是
7 pingfen varchar 200 是
8 pingjianeirong longtext 是
9 pingjiariqi date 是
10 jiaoliangonghao varchar 200 是
11 jiaolianxingming varchar 200 是
12 yonghuming varchar 200 是
13 lianxidianhua varchar 200 是
14 sfsh varchar 200 是 否
15 shhf longtext 是
16 userid bigint 20 是
表4.7 kechengyuyue
序号 列名 数据类型 长度 小数位 标识 主键 外键 允许空 默认值 说明
1 id bigint 20 是 是 否 auto
2 addtime timestamp 否 CURRENT
3 dingdanbianhao varchar 200 是
4 kechengmingcheng varchar 200 是
5 tupian varchar 200 是
6 jieshu varchar 200 是
7 yuyueshijian datetime 是
8 jiaoliangonghao varchar 200 是
9 jiaolianxingming varchar 200 是
10 yonghuming varchar 200 是
11 xingming varchar 200 是
12 lianxidianhua varchar 200 是
13 sfsh varchar 200 是 否
14 shhf longtext 是
15 userid bigint 20 是
表4.8 messages
序号 列名 数据类型 长度 小数位 标识 主键 外键 允许空 默认值 说明
1 id bigint 20 是 是 否 auto_increment
2 addtime timestamp 否 CURRENT_TIMESTAMP
3 userid bigint 20 否
4 username varchar 200 是
5 content longtext 否
6 reply longtext 是
表4.9 news
序号 列名 数据类型 长度 小数位 标识 主键 外键 允许空 默认值 说明
1 id bigint 20 是 是 否 auto
2 addtime timestamp 否 CURRENT
3 title varchar 200 否
4 introduction longtext 是
5 picture varchar 200 否
6 content longtext 否
表4.10 sijiaokecheng
序号 列名 数据类型 长度 小数位 标识 主键 外键 允许空 默认值 说明
1 id bigint 20 是 是 否 auto
2 addtime timestamp 否 CURRENT
3 kechengmingcheng varchar 200 是
4 leixing varchar 200 是
5 tupian varchar 200 是
6 jieshu int 11 是
7 kechengjiage int 11 是
8 keyueshijian varchar 200 是
9 kechengjieshao longtext 是
10 jiaoliangonghao varchar 200 是
11 jiaolianxingming varchar 200 是
12 dengji varchar 200 是
13 gerenjianjie varchar 200 是
14 clicktime datetime 是
15 clicknum int 11 是 0
表4.11 storeup
序号 列名 数据类型 长度 小数位 标识 主键 外键 允许空 默认值 说明
1 id bigint 20 是 是 否 auto
2 addtime timestamp 否 CURRENT_TIMESTAMP
3 userid bigint 20 否
4 refid bigint 20 是
5 tablename varchar 200 是
6 name varchar 200 否
7 picture varchar 200 否
表4.12 token
序号 列名 数据类型 长度 小数位 标识 主键 外键 允许空 默认值 说明
1 id bigint 20 是 是 否 auto
2 userid bigint 20 否
3 username varchar 100 否
4 tablename varchar 100 是
5 role varchar 100 是
6 token varchar 200 否
7 addtime timestamp 否 CURRENT_TIMESTAMP
8 expiratedtime timestamp 否 CURRENT_TIMESTAMP
表4.13 users
序号 列名 数据类型 长度 小数位 标识 主键 外键 允许空 默认值 说明
1 id bigint 20 是 是 否 auto_increment
2 username varchar 100 否
3 password varchar 100 否
4 role varchar 100 是 管理员
5 addtime timestamp 否 CURRENT_TIMESTAMP
表4.14 yonghu
序号 列名 数据类型 长度 小数位 标识 主键 外键 允许空 默认值 说明
1 id bigint 20 是 是 否 auto
2 addtime timestamp 否 CURRENT_TIMESTAMP
3 yonghuming varchar 200 否
4 mima varchar 200 否
5 xingming varchar 200 否
6 xingbie varchar 200 是
7 touxiang varchar 200 是
8 lianxidianhua varchar 200 是