运动会管理系统数据库设计(ER图+sql代码)

1、需求描述

系统要能记录学院、项目、运动员、裁判员、比赛场地等基本信息;能登记运动员报名的比赛;能对比赛日程安进行安排,包括比赛的时间、场地、裁判员;能记录每场比赛各运动员的成绩;对统计每个比赛的名次、得分;能统计各学院获得的总分。

2、ER图

根据以上需求可以抽象出6个实体:学院、运动员、裁判员、项目、比赛、场地。

规则假设:一个学院有多名运动员,一名运动员只属于一个学院;一个项目可以安排多场比赛,一场比赛只属于一个项目;一个运动员可以报名多个比赛,一个比赛可以有多个运动员和裁判;一个裁判也可以裁决多场比赛;一个场地可以分给多个比赛,一个比赛只能分配一个场地。

根据以上实体画出ER图如下:

3、关系模式

学院(编号,学院名,建院年份)主键:编号

运动员(编号,姓名,性别,年龄,学院编号) 主键:编号,外键:学院编号

场地(编号,大小,人数)主键:编号

裁判(编号,姓名,性别,年龄) 主键:编号

项目(编号,名称,类型)主键:编号

比赛(编号,名称,比赛时间,场地编号) 主键:编号,外键:场地编号

参赛(运动员编号,比赛编号,得分) 主键:(远动员编号、比赛编号)外键:运动员编号、比赛编号

裁决(裁判编号,比赛编号) 主键:(裁判编号、比赛编号) 外键:裁判编号、比赛编号

4、创建表、添加数据

以下sql代码采用mysql 5.6版本编写。

-- 创建数据库

create database sports
charset utf8;

-- 创建学院表

use sports;
create table college
(cid int primary key,
cname varchar(40) not null,
byear char(4));

-- 添加学院数据

INSERT INTO college VALUES (1001,'数统学院','1967'),
(1002,'信息工程学院','1957'),(1003,'文学院','1945'),
(1004,'外国语学院','1966'),(1005,'环境学院','1966'),
(1006,'水土水利学院','1968'),(1007,'物理学院','1967'),
(1008,'化学院','1977'),(1009,'农学院','1988'),(1010,'生态学院','2002');

-- 创建运动员表

create table athlete
(aid int primary key,
aname varchar(40) not null,
asex char(2) not null,
aage int,
cid int references college(cid));

-- 添加运动员数据

INSERT INTO athlete VALUES (1,'佳佳','女',19,1004),(2,'陈子怡','女',19,1004),
(3,'承羽','男',20,1006),(4,'牧一','男',20,1007),(5,'一搏','男',18,1008),
(6,'乐言','女',19,1010),(7,'思恒','男',10,1005),(8,'小红','女',19,1007),
(9,'花花','女',19,1008),(10,'博城','男',19,1004),(11,'廖子轩','男',20,1006),(12,'文文','女',20,1002);

。。。。。。

5、查询

-- 查询详细的比赛日程

-- 查询各项目比赛的结果

完整资料下载:链接: https://pan.baidu.com/s/1H154njawoHjA_xpABBEqKw 提取码: d69c

有任何问题可以联系我们

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注