APP下载

乒乓球比赛报名系统数据库设计与实现

2019-05-23许俊

电脑知识与技术 2019年5期
关键词:数据库

许俊

摘要:详细描述乒乓球比赛报名数据库的需求、数据字典,设计了关系型数据库表的结构,在MySQL中实现了视图查询整体名单,存储过程导出整体名单为excel文件,为项目的开发提供了后台数据支撑。

关键词:乒乓球报名;数据库;设计实现

中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2019)05-0016-03

在以往的乒乓球比赛准备阶段,参赛选手、团体的报名数据由人工填写在纸张表格后手工录入电脑,或者用QQ、微信收集,再复制到电子表格,对报名的原始数据整理加工,大量工作是手工整理,统计分析,耗时又低效,数据可靠性差,因此需要统计精确、格式规范的报名数据为科学管理比赛赛程、编排、抽签、管控赛场秩序提供支撑,也是乒乓球比赛准备工作高效率信息化的基础信息来源。本文所述乒乓球比赛报名系统基于大数据技术,对大量数据的集中存储、使用共享管理,查询精准灵活,稳定可靠,将报名信息整理成整体报名名单或分组报名名单,导出为Excel格式,为赛事助手提供参赛选手的报名名单信息,是整个赛事的赛程编排、抽签入位、比赛排阵、比赛控场、生成秩序册、生成查询比赛进度、查询比赛成绩、排名等环节信息化管理的数据来源。本文对乒乓球比赛报名系统的数据库进行设计和实现。

1 乒乓球比赛报名的需求

1.1 参与者

系统管理员:创建、维护管理所有赛事的比赛名称、初始化比赛项目,审核赛事消息的合法、合理性等。创建、修改、删除赛事管理员。是系统的最高级别、无限制完全权。例如报名系统的网管员、信息员、技术支持员。

賽事管理员:创建、修改参赛队管理员。管理本赛事的时间、地点、报名起止时间、设置比赛项目等信息,查询赛事报名信息,报名信息统计汇总。创建各参赛队队名、设置领队。审核各参赛队的基本资料。查看全体报名运动员个人基本资料、参赛项目。指定团体赛的种子号。导出参赛名单。下载裁判员、参赛队团、参赛选手基本资料。例如乒乓球协会主席、比赛主办方技术官员。

参赛队管理员:创建、修改本参赛队队名、设置领队、教练。创建、修改、删除本队各团体名称、数量。查看、审核本队报名运动员个人资料、参赛项目。本队团体选手人员项目的组团,指定队员的队内技术号。例如各运动队领队、教练。

运动员:注册、修改自己的注册信息,报名与取消报名。

1.2 业务用例

包括乒乓球比赛报名系统整体业务用例图,及参赛队管理包用例图、赛事管理包用例图。

注册个人信息:运动员填写注册信息,真实姓名、性别、年龄、单位、身份证号、邮箱、手机号码、密码、确认密码,注册进乒乓球比赛报名系统。

报名比赛:运动员填写必须信息 ,类别、比赛项目、队、团体。参加某项乒乓球赛事。

取消报名:运动员取消已经报名的赛事,不参加比赛。

创建赛事:系统管理员创建某项乒乓球赛事的名称。系统接受提交的赛事名称,自动生成唯一的赛事编号。

初始化比赛项目:初始化新创建的赛事的比赛项目。比赛项目预设,MS男单、MD男双、MT男团、WS女单、WD女双、WT女团、XD混双、XT混团。

设置比赛项目:赛事管理员设置、修改比赛项目的类型、名称。

添加参赛队管理员:赛事管理员添加某个参赛队的管理员,使参赛队管理员能够、只能够管理本队。

创建修改参赛团、队:参赛队管理员创建或修改本队的团体名、队名。

查询、统计:赛事管理员查看全体报名运动员个人基本资料、参赛项目,分类别统计汇总报名信息。

导出参赛名单:赛事管理员导出某比赛的参赛队、团、个人名单为Excel格式文件。

2 乒乓球比赛报名的数据字典

分析乒乓球比赛报名系统的参与者和业务用例,设计数据库字典。

2.1 运动员实体

运动员真实姓名:字符型,长度10。性别:字符型,长度2。年龄:整数。身份证号:字符型,长度18。手机号码:字符型,长度11。用户名:用户登录系统的名称,唯一值,字符型,长度10。密码:字符型,长度6。照片文件:运动员照片的文件名称,字符型,长度100。邮箱:注册人员的电子邮箱。字符型,长度20。

2.2 赛事实体

赛事编号:每次赛事的唯一代号,整数。赛事名称:每个赛事的具体名称,字符型,长度20。赛事开始时间:赛事开始比赛的时间,日期型。赛事结束日期:结束比赛的时间,日期型。报名开始日期:某项赛事开始接收运动员、团体报名的时间,日期型。报名结束日期:某项赛事报名的截止时间,日期型。

2.3 比赛类别实体

类别编号:比赛的分类编号,整数型,唯一值。类别名称:每个组别的具体名称,字符型,长度20。

2.4 比赛项目实体

项目编号:每个单项比赛的唯一编号,整数。赛事编号:比赛项目从属的完整编号,从赛事实体的赛事编号取值,整数。项目代码:每个项目的唯一编码,字符型,长度2。项目名称:每个单项的具体名称,字符型,长度4。比赛单项的代码与名称对应关系是,MS男单、MD男双、MT男团、WS女单、WD女双、WT女团、XD混双、XT混团。

2.5 参赛队实体

赛事编号:参赛队参加的赛事编号,参考赛事实体的编号。参赛队编号:参赛比赛的代表队编号,整数。参赛队名称:字符型,长度20。领队:字符型,长度50。教练:字符型,长度50。

2.6 参赛团体实体

参赛队编号:团体比赛中参赛团体所属的参赛队编号,整数,取值自参赛队实体。团体编号:参赛团体的唯一代号,整数。团体名称:参赛团体的具体名称,字符型,长度20。团体种子号:团体比赛中,某个团体的排列种子号码,正整数。

2.7 参赛队管理员实体

赛事编号:参赛队的管理员所管理的某项赛事的编号,整数,取值自赛事实体。参赛队编号:参赛队的管理员所管理的参赛代表队编号,整数,取值自参赛队实体。用户名:管理参赛队的用户,字符型,长度10,取值自运动员实体。

2.8 赛事管理员实体

赛事编号:赛事管理员所管理的某项赛事的编号,整数,取值自赛事实体。用户名:管理赛事的用户,字符型,长度10,取值自运动员实体。

2.9 报名表实体

赛事编号:运动员报名参加的某项赛事的编号,整数,取值自赛事实体。级别编号:运动员参与的比赛组别编号,整数,取值自组别实体。比赛项目编号:运动员报名的比赛项目代号,整数,取值自比赛项目实体。参赛队编号:运动员所属的代表队编号,整数,取值自参赛队实体。团体编号:运动员参加团体比赛的所属团体代号,整数,取值于团体实体。用户名:运动员在系统中的唯一名称,取值于运动员实体。队内技术号:运动员在该队的技术编号,整数。种子号:运动员参加单项比赛的种子编号,整数。

2.10 系统管理员实体

用户名:系统管理员登录的名称,字符型,长度20。密码:系统管理员登录系统的密码,字符型,长度10。

3 表结构设计

乒乓球比赛报名系统有10个实体:category比赛类别、competition赛事、competition_item赛事项目、enrolllist报名、item项目、match_administrator赛事管理员、party团体、player选手、team运动队、team_administrator运动队管理员,系統采用关系型数据库,其中部分实体的结构如下。

4 乒乓球比赛报名的数据库实现

报名数据库ttmatch在MySQL8.0具体实现了表、视图、存储过程的创建。

4.1 视图的实现

创建团体报名名单视图vw_wholelist_team,单打报名视图vw_wholelist_single,双打报名视图vw_wholelist_double,整体报名名单视图vw_wholelist,包括单打、双打、团体比赛的完整名单。

团体报名名单视图:

create VIEW vw_wholelist_team

AS

select c.categoryName AS 组别,

i.itemCode AS 项目,

t.teamName AS 队名,

p.groupName AS 姓名/团体名,

ply.sex AS 性别1,

ifnull(NULL,'') AS 队名2,

ply.realName AS 成员,

ply.sex AS 性别2,

ifnull(e.techID,'') AS 队内技术号,

ifnull(p.groupSeed,'') AS 种子号

from (((((enrolllist e join category c on((e.categoryID = c.categoryID)))

join item i on(((i.itemCode = e.itemCode) and (i.itemCode in ('mt','wt','xt')))))

join team t on((t.teamID = e.teamID)))

join party p on((p.groupID = e.groupID)))

join player ply on((ply.userName = e.userName)))

整体报名名单视图:

CREATE VIEW vw_wholelist AS

SELECT vw_wholelist_team.* FROM vw_wholelist_team

UNION

SELECT vw_wholelist_single.* FROM vw_wholelist_single

UNION

SELECT vw_wholelist_double.* FROM vw_wholelist_double

4.2 创建存储过程

创建存储过程up_export_wholeList,导出整体报名名单为xls文件。

CREATE PROCEDURE up_export_wholeList(out outXLSFile varchar(1000))

begin

declare

outfileName varchar(1000);

set outfileName= concat('d:/ttmatch/','wholeList' ,cast(now()+0 as char), cast('.xls' as char)) ;

SET @sqlstr = concat("select * into outfile '", outfilename , "' CHARACTER SET gbk from vw_wholelist");

set outXLSfile=@sqlstr;

PREPARE stmt1 FROM @sqlstr ;

EXECUTE stmt1 ;

end

参考文献:

[1] 张瑛秋.国际乒乓球比赛微电脑报名系统的研制[J].北京体育大学学报,1997(1).

[2] 刘淑芳.关于国际乒乓球比赛接受报名工作的改革设想[J].中国体育科技,1998(8).

【通联编辑:张薇】

猜你喜欢

数据库
超星数据库录入证
本刊加入数据库的声明
两种新的非确定数据库上的Top-K查询
国外数据库高被引论文排行TOP10
国内主要期刊数据库