瑜伽馆约课系统的数据库设计与实现

2020-09-15 16:30江明何绍平龙建宇李涛韦美雁
计算机时代 2020年8期
关键词:概念模型事务

江明 何绍平 龙建宇 李涛 韦美雁

摘要:信息化时代的各行各业都倾向于把服务和管理工作通过信息化系统来完成,以提高服务效率和服务质量,例如该瑜伽馆约课系统。文章阐述了系统的需求分析、概念模型及逻辑模型设计、数据库优化、事务设计等,详细介绍了MySQL数据库技术在其中的应用。该系统为瑜伽馆会员约课以及管理员排课、统计各项数据提供了技术支持,实现了小型企业的信息化管理。

关键词:约课系统;MySQL;概念模型;数据库优化;事务

中图分类号:G250.74 文献标识码:A 文章编号:1006-8228(2020)08-53-04

0 引言

随着当今计算机和通信网络的技术迅速发展,各行业的服务也要求越来越高效和精准,为了帮助瑜伽从业人员完善对会员的服务,特别研发了基于微信小程序[1-2]的瑜伽馆约课管理系统。为了保证该系统正常高效地运行,并保证数据安全,建立一个稳定、安全、易扩容、效率高的数据库系统非常重要。

1 系统分析与设计

1.1 需求分析

为了明确瑜伽馆约课系统的功能需求和数据处理需求,我们采用结构化分析(Strctured Analysis,SA)方法[3]进行分析,采用DFD(Data Flow Diagram)工具[3]進行建模,我们得到了约课系统的顶层和中间层多个数据流图,其中用户验证、约课信息两个中间层数据流图如图1、图2所示。

图1是用户登录过程中数据流向示意图。瑜伽约课系统是通过微信官方API接口来获取用户身份信息(即用户的微信ID),从而保证用户的惟一性和安全性。当用户第一次进入微信小程序时,系统要求绑定个人信息,绑定成功后,用户可以直接进入小程序。

约课系统的核心功能是为学员提供约课服务,因此,理顺各用户和课程之间的业务逻辑十分重要。图2是约课信息数据流图,通过图2我们可以了解到,系统需要存储和处理的数据有学员、教练、用户、课程、选课、签到等信息。

1.2 系统功能设计

通过分析,我们首先明确了系统的总体目标:建立一个瑜伽馆约课管理系统,实现会员约课、管理员排课、发布课表等功能,从而帮助瑜伽馆老板通过该微信小程序更好的为客户服务。

同时,也明确了系统功能需求即:系统用户分为学员、教练、管理员;学员可以查询课表、约课、取消约课等;教练可以查询课表、授课记录、签到;管理员负责学员和教练的注册、周课表安排、课表发布等。此外,也希望通过该平台能发布瑜伽馆推荐的商品信息等。综合起来,我们的系统可以从如下几个角度来描述:用户管理、课程管理、场馆管理、商城管理。从而,我们获得了系统主要功能模块图,如图3所示。

1.3 数据库设计

通过需求分析,我们已经了解到系统的信息需求和处理需求,也就是我们需要通过数据库系统来提供什么信息,数据处理如何进行,这些信息应如何存储在数据库中等。数据库设计[4-5]是为了实现数据的存储和管理,我们构建了该系统的概念模型,其中包含的主要实体有教练、学员、场馆、课程、教室、时间段等实体,其E-R图如图4所示。

根据E-R图以及结合本系统的实际需求,我们在进行逻辑模型设计时,共设计了15张表,下面对一些重要的表进行简单介绍。

(1) user表(用户表)

考虑到教练、学员、管理员很多属性都是相同的,为了节约空间,我们把三者结合,用user来表示。为了区分它们是不同的用户,特增加一个属性type,同时增加属性openID对应用户的微信ID.故有:user(user_id,openld, user_name, user_sex, user_tel, user_age, address,type)。该表候选码有user_id, openld,主码为user_ id。该模式符合BCNF范式。

(2) Student表(学员表)

User可以表示各用户之间共同属性,而对于不同用户所具有的特殊属性它无法表达,例如学员,系统需要记录学员用户取消约课的次数(恶意取消约课次数达到5次,将冻结其账号,在冻结期限内,将不能约课)、账号冻结时间和解除冻结时间、被冻结次数等,为此,我们设计了表student。

student( student_id, canceLdate_times, account_freeze_time, account_ remove_time, account_freezed_times)。 其中student_id的数据参照user表的user id。

因此,学员的信息需要通过user表和student表共同呈现。

(3) place表(场馆表)

场馆表使得整个系统管理更加明确,将系统划分成场馆为单位,教练和学员都有他惟一的所属场馆。place(place_id, place_name,address, phone)

(4) room表(教室表)

room(room_id,room name,place_id,type,capacity),其中place_id参照场馆表中的place_id

(5) course_store表(课程表)

课程表,指的是瑜伽馆所开设的课程,它存储课程的编号,课程的名称、课程引入时间、课程简介等。course—store(store_id, store_name, strore_time,desc)。

(6) time_range表(时间段表)

为了排课方便,我们设置一个时间段表,time_range(time_range_id, start_time, end_time)。

(7) time_range_room表(教室空闲时间表)

猜你喜欢
概念模型事务
基于分布式事务的门架数据处理系统设计与实现
河湖事务
基于“认知提升”的体系作战指挥概念模型及装备发展需求
基于PSR概念模型的稀土资源安全评价
数字矿山信息集成概念模型
SQLServer自治事务实现方案探析
基于PSR概念模型的土地利用系统健康评价
移动实时环境下的数据一致性研究