首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

世界杯赛事数据库设计

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

需求分析

世界杯赛程

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

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

数据结构分析:

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

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

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

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

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

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

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

逻辑关系分析:

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

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

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

概念设计

世界杯赛程

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

逻辑E-R图

1、球队信息E-R图

球队信息E-R图

2、球员信息E-R图

球员信息E-R图

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

逻辑模型设计

世界杯赛程

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

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

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

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

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

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

物理模型设计

世界杯赛程

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

1、球队物理模型

球队物理图

2、球员物理模型

球员物理模型

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

物理关系图

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

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

物理图对应的SQL语句

结语

世界杯赛程

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

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

--“醒醒吧,孩子!”

SQL专栏

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180615G0OAUN00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券