SQL数据库开发​,关注获取​SQL视频教程

昨天就是四年一次的世界杯啦,虽然我不是足球球迷,但是对这个世界杯的赛事数据库,是怎么设计的倒是挺感兴趣的。下面跟着我一起来看看怎么设计这个数据库吧。



技术人的世界杯 | 世界杯赛事数据库设计_sql需求分析世界杯赛程


做开发的怎么都逃不过需求分析的啦,没有将需求分析清楚的开发都是伪开发!

针对世界杯赛事我们作如下需求分析:

数据结构分析:

  1. 球队的主要信息,包括:球队编号,球队名称,所属国家,所在小组,成立时间,球队人数,主教练编号,球队荣誉

  2. 球员的主要信息,包括:球员编号,球员姓名,所属国家,球队编号,身高,体重,年龄,队服号码,位置,历史记录

  3. 主教练的主要信息,包括:教练编号,教练姓名,所属国家,球队编号,所持证书,执教生涯,历史记录

  4. 主裁判主要信息,包括:裁判编号,姓名,身份证号,年龄,资格证书号、获取证书时间、级别

  5. 赛事的主要信息,包括:赛事编号,比赛场地,比赛时间,主队编号,主队名称,客队编号,客队名称,比赛结果,裁判

  6. 球队积分信息,包括:球队编号,球队名称,积分,进球总数,失球总数,比赛场数,胜场数,负场数,平场数

  7. 射手榜信息,包括:球员编号,球员姓名,所属球队,进球总数,点球总数,乌龙球总数,排名

逻辑关系分析:

  1. 每支球队有一名主教练和若干名球员。一名主教练只能受聘于一支球队,一名球员只能效力于一支球队。为区别球队使用主客队进行区分。

  2. 世界杯采用小组循环制,每天都有比赛,小组内的球队两两进行比赛。

  3. 一场比赛有两支球队参加,一只球队作为主队身份、另一支作为客队身份参加比赛。一场比赛只能有一名主裁判,每场比赛都有唯一的比赛编码,每场比赛都记录比分和日期



技术人的世界杯 | 世界杯赛事数据库设计_sql概念设计世界杯赛程


文字总是不容易理解,那我们就用图形的方式展示出来,具体E-R图如下:


技术人的世界杯 | 世界杯赛事数据库设计_需求分析_03

逻辑E-R图


1、球队信息E-R图

技术人的世界杯 | 世界杯赛事数据库设计_数据库_04

 球队信息E-R图


2、球员信息E-R图

技术人的世界杯 | 世界杯赛事数据库设计_sql_05

球员信息E-R图

后面的基本都是类似的做法啦,这里就不赘述啦



技术人的世界杯 | 世界杯赛事数据库设计_sql逻辑模型设计世界杯赛程


其实咱们需求里已经描述的很清楚啦,就是每个表的逻辑结构,这里我们需要添加主键和外键即可。

1、​球队实体​可以化成如下的关系模式,其中球队编号为球队模式的主键,同时也是其他表的外键

球队(球队编号,球队名称,所属国家,所在小组,成立时间,球队人数,​主教练编号​,球队荣誉)

2、​球员实体​可以化成如下的关系模式,其中球队编号为球队模式的主键,同时也是其他表的外键

球员(球员编号,球员姓名,所属国家,​球队编号​,身高,体重,年龄,队服号码,位置,历史记录)

后面的的逻辑模型设计也都类似做法。



技术人的世界杯 | 世界杯赛事数据库设计_sql物理模型设计世界杯赛程


下面我们来看看物理图的设计

1、球队物理模型

技术人的世界杯 | 世界杯赛事数据库设计_需求分析_08

球队物理图


2、球员物理模型

技术人的世界杯 | 世界杯赛事数据库设计_数据库_09

球员物理模型


其他的物理模型与上述类似,设计完成后,整个物理结构关系如下:

技术人的世界杯 | 世界杯赛事数据库设计_sql_10

物理关系图

注:以上物理模型在PowerDesign 16.5中完成


至此,世界杯赛事数据库的一个大概模型就出来了,将PowerDesign生成的SQL语句放到SQL Server中执行就可以了。如下图:

技术人的世界杯 | 世界杯赛事数据库设计_需求分析_11

物理图对应的SQL语句

技术人的世界杯 | 世界杯赛事数据库设计_sql结语世界杯赛程

本打算在世界杯开幕前推送给大家,由于时间仓促还是未能成行,而且世界杯真的挺好看,开局就给我们一个大大的惊喜。高兴之余也不忘给朋友们分享一下技术,对数据库设计感兴趣的朋友,可以把这个项目继续完善哦,我可是留了很多空白让大家去动手尝试。当然,不感兴趣的就跟小编一起来看世界杯吧

--“老板,我买中国队赢!”

--“醒醒吧,孩子!”




SQL专栏



SQL基础知识汇总

SQL高级知识汇总


公众号回复‘M’​获取文章目录,搜索QQ​“SQL数据库开发”​加群讨论



技术人的世界杯 | 世界杯赛事数据库设计_sql_13

长按识别二维码​,
更多精彩早知道!