【原创】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 ...
随机推荐
- PHP类与面向对象
PHP常量PHP常量大写PHP常量用define函数或const关键字定义一个常量一旦被定义,就不能再改变或者取消定义.在 PHP 5.3.0 以后,可以使用 const 关键字在类定义之外定义常量. ...
- Linux内核--异常和中断的区别
相信大家都知道非常著名的两个名词:异常和中断,不过,你真的理解这两个名词在说什么吗?它们之间有什么区别呢? 1.中断 大家都知道,当我们在敲击键盘的同时就会产生中断 ...
- 网页二维码推广App的实现
移动互联网时代,一个APP的平均推广成本早已经超过了10块.而推广通常分二类: 1.已经下载过的用户,可以直接打开应用(一般人的手机上安装的应用都非常多,要快速找到某个应用是很困难的事情,而且Andr ...
- VS SuppressMessage忽略特定方法的警告信息
VS在编译源码的时候有很多警告信息,有些时候 我们需要忽略一个特定方法的特定警告信息,于是就用SuppressMessage特性,可是这个特性的参数不太好搞定,还好有VS,Suppressing Co ...
- WindowsPhone-GameBoy模拟器开发六--[转]指令系统实现必读:补码
网上有同行写了些好文章,在此就不现丑了,贴上连接,放在这里为了补充系列的完整性 计算机为什么选用二进制补码 为什么补码重要?因为计算机中内存.寄存器里面存的数都是用补码表示的!
- ELK——在 CentOS/Linux 把 Kibana 3.0 部署在 Nginx 1.9.12
上一篇文章<安装 logstash 2.2.0.elasticsearch 2.2.0 和 Kibana 3.0>,介绍了如何安装 Logstash.Elasticsearch 以及用 P ...
- 恶心的hadoop集群
具体配置:网上一堆,我说一下我的问题好了! “完全” 分布式集群 注意地方有三点: 1.你的"master" dfs目录中的某个Id不一致,具体位置,有空我再找找.(经过我找了一下 ...
- GitLab 的 Developer 角色没有权限提交问题
"C:\Program Files\Git\bin\git.exe" push --recurse-submodules=check --progress "origin ...
- 生成二维码 打上自定义logo
private void RenderQrCode(string Code) { try { string level = "Q"; string url = ZConfig.Ge ...
- c#列举和迭代器
列举 - Enumeration 迭代器是一个值序列(集合)上的一个只读且只向前移动的游标.迭代器要么实现了IEnumerator接口,要么实现了IEnumerator<T>接口. 从技术 ...