昨天是四年一次的世界杯,虽然不是球迷,但我对这个世界杯比赛数据库是如何设计的很感兴趣。(大卫亚设)。
下面跟着我一起来看看怎么设计这个数据库吧。需求分析
世界杯赛程
做开发的怎么都逃不过需求分析的啦,没有将需求分析清楚的开发都是伪开发!
针对世界杯赛事我们作如下需求分析:
数据结构分析:
- 球队的主要信息,包括:球队编号,球队名称,所属国家,所在小组,成立时间,球队人数,主教练编号,球队荣誉
- 球员的主要信息,包括:球员编号,球员姓名,所属国家,球队编号,身高,体重,年龄,队服号码,位置,历史记录
- 主教练的主要信息,包括:教练编号,教练姓名,所属国家,球队编号,所持证书,执教生涯,历史记录
- 主裁判主要信息,包括:裁判编号,姓名,身份证号,年龄,资格证书号、获取证书时间、级别
- 赛事的主要信息,包括:赛事编号,比赛场地,比赛时间,主队编号,主队名称,客队编号,客队名称,比赛结果,裁判
- 球队积分信息,包括:球队编号,球队名称,积分,进球总数,失球总数,比赛场数,胜场数,负场数,平场数
- 射手榜信息,包括:球员编号,球员姓名,所属球队,进球总数,点球总数,乌龙球总数,排名
逻辑关系分析:
- 每支球队有一名主教练和若干名球员。一名主教练只能受聘于一支球队,一名球员只能效力于一支球队。为区别球队使用主客队进行区分。
- 世界杯采用小组循环制,每天都有比赛,小组内的球队两两进行比赛。
- 一场比赛有两支球队参加,一只球队作为主队身份、另一支作为客队身份参加比赛。一场比赛只能有一名主裁判,每场比赛都有唯一的比赛编码,每场比赛都记录比分和日期
概念设计
世界杯赛程
文字总是不容易理解,那我们就用图形的方式展示出来,具体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语句
结语
世界杯赛程
本打算在世界杯开幕前推送给大家,由于时间仓促还是未能成行,而且世界杯真的挺好看,开局就给我们一个大大的惊喜。高兴之余也不忘给朋友们分享一下技术,对数据库设计感兴趣的朋友,可以把这个项目继续完善哦,我可是留了很多空白让大家去动手尝试。当然,不感兴趣的就跟小编一起来看世界杯吧
--“老板,我买中国队赢!”
--“醒醒吧,孩子!”