运动会管理系统数据库设计(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
有任何问题可以联系我们。
DkME
按照操作说明,程序可以运行,
非常不错,真的是帮大忙了呀,哈哈~~