【原创】C#搭建足球赛事资料库与预测平台(4) 比赛信息数据表设计
本博客所有文章分类的总目录:【总目录】本博客博文总目录-实时更新
开源C#彩票数据资料库系列文章总目录:【目录】C#搭建足球赛事资料库与预测平台与彩票数据分析目录
本篇文章开始将逐步介绍使用C#搭建足球赛事资料库与预测平台的相关细节。还是先从数据库开始,从本文开始将逐步对每个核心实体类和数据库设计相关的内容进行讲解,并公布源代码,至于能不能跑起来,看的看个人努力。由于没有时间将所有相关业务都简述清楚,所以也只好将需求和表设计一起进行。本人也是走了很多弯路的。考虑到系统数据表很多,按照功能不同,分为基础数据表,比赛相关表,赔率相关表,以及特殊数据表4个部分分别进行讲解,请大家关注博客。
今天要关注就是比赛信息相关的数据表设计。比赛信息表是核心数据,核心是指其数据都是直接用于预测的,是预测的主体和最重要的信息要素。这是系统的核心,比赛场次的信息是预测,模型研究的基础。而且也是本系统最复杂的部分之一,业务查询复杂。同时考虑到系统复杂程度,数据量大,以及为了以后的查询方便,该部分大量使用了分数据库操作,主要是按照赛事数据分开存储。主要包括以下表:
本文原文地址:http://www.cnblogs.com/asxinyu/p/4447523.html
1.场次信息表
存储每一场比赛的比赛 本身的信息,如比赛时间,主客队球队名称与编号,轮次,赛季,以及主客进球和平均赔率信息。该表按赛事名称进行分库。也就是每一项赛事的所有赛季都放在一起,便于查询。10年的数据,单库也就几千条记录,技术再差也不至于效率很差吧。其表结构如下:
| 编号 | 字段名 | 类型 | 长度 | 描述 | 备注 | 
| 1 | Id | int | 4 | 编号 | 自增主键 | 
| 2 | SeasonId | int | 4 | 赛季编号 | 索引 | 
| 3 | SeasonName | nvarchar(50) | 100 | 赛季名称 | |
| 4 | EventId | int | 4 | 赛事编号 | 索引 | 
| 5 | EventName | nvarchar(50) | 50 | 赛事名称 | |
| 6 | RoundId | int | 4 | 轮号 | 索引 | 
| 7 | RoundName | nvarchar(30) | 30 | 轮名称 | |
| 8 | HomeId | int | 4 | 主队编号 | 索引 | 
| 9 | VisiteId | int | 4 | 客队编号 | 索引 | 
| 10 | HomeName | nvarchar(30) | 30 | 主队名称 | |
| 11 | VisitName | nvarchar(30) | 30 | 客队名称 | |
| 12 | MatchID | int | 4 | 比赛编号 | 唯一索引 | 
| 13 | HalfHomeGoals | int | 4 | 主队半场进球 | |
| 14 | HalfVisitGoals | int | 4 | 客队半场进球 | |
| 15 | HomeGoals | int | 4 | 主队全场进球 | |
| 16 | VisitGoals | int | 4 | 客队全场进球 | |
| 17 | Result | int | 4 | 全场结果 | |
| 18 | HalfResult | int | 4 | 半场结果 | |
| 19 | GameTime | datetime | 8 | 比赛时间 | |
| 20 | IsHistory | bit | 1 | 是否历史 | |
| 21 | IsSue | datetime | 8 | 期号 | 索引 | 
| 22 | Odds3 | float | 53 | 主胜平均赔率 | |
| 23 | Odds1 | float | 53 | 主平平均赔率 | |
| 24 | Odds0 | float | 53 | 主负平均赔率 | |
| 25 | Handicap | nvarchar(15) | 15 | 亚盘盘口 | |
| 26 | HomeLevel | float | 53 | 亚盘主水 | |
| 27 | VisitLevel | float | 53 | 亚盘客水 | |
| 28 | HandResult | nvarchar(15) | 15 | 亚盘结果 | |
| 29 | BigSmallResult | nvarchar(15) | 15 | 大小盘结果 | 
2.球队场次表
是本次新增的主要表,球队场次涉及到球队历史场次的查询,需要很快的速度要求,所以单独按照球队进行分库保存,合理的冗余和分库,同时只保存场次的主要信息,其他信息暂时不保存,去对应的联赛表找。在以前的版本中,场次历史表不仅存储了双方对战场次的信息,同时也存储主客双方最近比赛的信息,简单的包括了胜平负欧赔和亚盘的数据。本次更新的最大问题也是在这里的改进,由于每一场比赛历史数据的冗余非常严重(30-50倍),因此引入了球队场次表,每次动态的对主客比赛进行查询。因此改进后的场次历史表,就只存储双方对战场次的信息。表结构和场次信息表大致类似,增加了欧赔和亚盘的数据。因此,相对来说,球队场次表更加节省空间,并提高了效率,这是实际做过后得到的总结和教训。
| 编号 | 字段名 | 类型 | 长度 | 描述 | 备注 | 
| 1 | Id | int | 4 | 编号 | 自增主键 | 
| 2 | TeamId | int | 4 | 球队编号 | |
| 3 | TeamName | nvarchar(20) | 20 | 球队名称 | |
| 4 | SeasonId | int | 4 | 赛季编号 | 索引 | 
| 5 | SeasonName | nvarchar(50) | 100 | 赛季名称 | |
| 6 | EventId | int | 4 | 赛事编号 | 索引 | 
| 7 | EventName | nvarchar(50) | 50 | 赛事名称 | 分库用 | 
| 8 | MatchID | int | 4 | 比赛编号 | 唯一索引 | 
| 9 | GameTime | datetime | 8 | 比赛时间 | 排序用 | 
| 10 | IsHome | bit | 1 | 是否主场 | 查询用 | 
| 11 | UpdateTime | datetime | 3 | 更新时间 | 
3.联赛排名表
联赛排名不是从外部获取的,是要根据实际的联赛场次动态来计算的,要与实际的排名相符合,每一轮进行计算保存。也是按照联赛进行分库的,同时也可以为以后开发出自己的基于PageRank的排序算法进行排名。具体排名算法将在后续中介绍,这里先介绍表的基本结构。
| 编号 | 字段名 | 类型 | 长度 | 描述 | 备注 | 
| 1 | Id | int | 4 | 编号 | 自增主键 | 
| 2 | EventName | nvarchar(10) | 20 | 赛事名称 | |
| 3 | EventId | int | 4 | 赛事编号 | |
| 4 | SeasonId | int | 4 | 赛季编号 | 索引 | 
| 5 | RoundId | int | 4 | 轮编号 | 索引 | 
| 6 | TeamId | int | 4 | 球队编号 | 索引 | 
| 7 | TeamName | nvarchar(10) | 20 | 球队名称 | |
| 8 | TotalRank | int | 4 | 总排名 | |
| 9 | HomeRank | int | 4 | 主场排名 | |
| 10 | VisitRank | int | 4 | 客场排名 | |
| 11 | TotalScore | int | 4 | 总积分 | |
| 12 | HomeScore | int | 4 | 主场积分 | |
| 13 | VisitScore | int | 4 | 客场积分 | |
| 14 | TotalCount | int | 4 | 总场次 | |
| 15 | HomeCount | int | 4 | 主场场次 | |
| 16 | VisitCount | int | 4 | 客场场次 | |
| 17 | TotalCount3 | int | 4 | 总胜场次 | |
| 18 | HomeCount3 | int | 4 | 主胜场次 | |
| 19 | VisitCount3 | int | 4 | 客胜场次 | |
| 20 | TotalCount1 | int | 4 | 总平场次 | |
| 21 | HomeCount1 | int | 4 | 主平场次 | |
| 22 | VisitCount1 | int | 4 | 客平场次 | |
| 23 | TotalCount0 | int | 4 | 总负场次 | |
| 24 | HomeCount0 | int | 4 | 主负场次 | |
| 25 | VisitCount0 | int | 4 | 客负场次 | |
| 26 | TotalGoal | int | 4 | 总进球 | |
| 27 | HomeGoal | int | 4 | 主场进球 | |
| 28 | VisitGoal | int | 4 | 客场进球 | |
| 29 | TotalLossGoal | int | 4 | 总失球 | |
| 30 | HomeLossGoal | int | 4 | 主场失球 | |
| 31 | VisitLossGoal | int | 4 | 客场失球 | |
| 32 | UpdateTime | datetime | 8 | 更新时间 | 
4.设计文件
自从使用XCode和XCoder之后,设计数据库只需要在XML文件中进行就可以了,本节中的设计文件如下图所示,后面提供了下载。

XML下载:比赛信息实体.xml
【原创】C#搭建足球赛事资料库与预测平台(4) 比赛信息数据表设计的更多相关文章
- 【原创】C#搭建足球赛事资料库与预测平台(6) 赔率数据表设计2
		本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 本篇文章开始将逐步介 ... 
- 【原创】C#搭建足球赛事资料库与预测平台(5) 赔率数据表设计1
		本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 开源C#彩票数据资料库系列文章总目录:http://www.cn ... 
- 【目录】C#搭建足球赛事资料库与预测平台与彩票数据分析目录
		本博客所有文章分类的总目录链接:本博客博文总目录-实时更新 1.彩票数据分析与预测 6.智彩足球技术研究团队成员介绍 5.关于组建“智彩足球技术研究团队”的说明 4.为什么选择玩足球彩票以及玩彩票的心 ... 
- 【原创】C#搭建足球赛事资料库与预测平台(2) 数据库与XCode组件
		本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 本篇文章开始将逐步 ... 
- 【原创】C#搭建足球赛事资料库与预测平台(3) 基础数据表设计
		本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 开源C#彩票数据资料库系列文章总目录:http://www.cn ... 
- C#搭建足球赛事资料库与预测平台(1) 基本介绍
		本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 去年4月到现在,一年 ... 
- .NET足球赛事资料数据库平台SmartLottery开源发布——全球足球联赛应有尽有
		本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 前2个月,我的系列文 ... 
- 基于SpringBoot+SSM实现的Dota2资料库智能管理平台
		Dota2资料库智能管理平台的设计与实现 摘 要 当今社会,游戏产业蓬勃发展,如PC端的绝地求生.坦克世界.英雄联盟,再到移动端的王者荣耀.荒野行动的火爆.都离不开科学的游戏管理系统,游戏管理系 ... 
- 【原创】Newlife.XCode的常见功能使用(一)查询与数据初始化
		本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html Newlife XCode组件相关文章目录:http://www ... 
随机推荐
- Linux内核启动分析过程-《Linux内核分析》week3作业
			环境搭建 环境的搭建参考课件,主要就是编译内核源码和生成镜像 start_kernel 从start_kernel开始,才真正进入了Linux内核的启动过程.我们可以把start_kernel看做平时 ... 
- jsp、js分页功能的简单总结
			一.概述 首先,我们要明确为何需要分页技术,主要原因有以下: 1.分页可以提高客户体验度,适当地选择合适的数据条数,让页面显得更有条理,使得用户体验感良好,避免过多数据的冗余. 2.提高性能的需要.分 ... 
- 轻松了解Spring中的控制反转和依赖注入(二)
			紧接上一篇文章<轻松了解Spring中的控制反转和依赖注入>讲解了SpringIOC和DI的基本概念,这篇文章我们模拟一下SpringIOC的工作机制,使我们更加深刻的理解其中的工作. 类 ... 
- iPhone屏幕尺寸、分辨率及适配
			转:http://blog.csdn.net/phunxm/article/details/42174937 目录(?)[+] 1.iPhone尺寸规格 设备 iPhone 宽 Width 高 H ... 
- exam help
			http://forceprepare.com/ http://forcecertified.com/certifications/certified-developer/ http://blog.l ... 
- 旧手机作为USB无线网卡使用(分享WIFI、蓝牙连接)
			首先开启手机的WIFI或者蓝牙功能,建立访问互联网的连接,然后设置-更多-网络共享与便携热点,打开安卓手机USB网络共享功能,即可在计算机上通过手机(无电话卡.数据卡)访问互联网.而且此时手机一直在充 ... 
- nginx做反向代理负载均衡 Java怎么获取后端服务器获取用户IP
			nginx做反向负载均衡,后端服务器获取真实客户端ip 首先,在前端nginx上需要做如下配置: location / proxy_set_hearder host ... 
- 不停止MySQL服务增加从库的两种方式
			不停止MySQL服务增加从库的两种方式 转载自:http://lizhenliang.blog.51cto.com/7876557/1669829 现在生产环境MySQL数据库是一主一从,由于业务量访 ... 
- ECSHOP后台SQL查询提示错误 this sql May contain UPDATE,DELETE,TRUNCATE,ALTER,DROP,FLUSH,INSERT
			一).首先说一下错误现象:市面上流行的绝大部分ECSHOP模板,安装的时候都需要执行一段或几段SQL语句来修改数据结构或者初始化一些数据.大多数ECSHOP管理员为了省事,都会通过 “ECSHOP后台 ... 
- Apache Internal Server Error
			当使用 Apache 作为服务器,使用 cgi 程序接收来自 web 端的访问时,出现如下错误: Internal Server Error The server encountered an int ... 
