【原创】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 ...
随机推荐
- text-size-adjust属性
在慕课上无意中看到-webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%;这两段代码,居然发现自己完全不理解,然后就去问度娘了,以下是一些 ...
- MySQL完整性语言
文章为作者原创,未经许可,禁止转载. -Sun Yat-sen University 冯兴伟 实验3:完整性语言 完整性语言实验包含3个实验项目,其中2个必修项目,1个选修项目.该实验的各个实验 ...
- KVM 基础使用(一)
Host OS:CentOS release 6.3 (Final) x64 安装时选择Virtual Host 1.测试KVM有没有启动 运行 lsmod | grep kvm 和 stat /de ...
- AngularJS Eclipse——新手入门【翻译+整理】
原文地址 本文介绍如何安装和配置 AngularJS Eclipse.AngularJS Eclipse 插件是基于强大的 JavaScript 推断引擎(javascript inference e ...
- 国内市场上 Android 手机屏幕分辨率的比例情况如何?
http://www.zhihu.com/question/19587205 根据友盟发布的<友盟国内Android数据报告>,前六名分别是: 800×480,32.4% 480×320, ...
- android里TextView加下划线的几种方式
如果是在资源文件里: <resources> <string name="hello"><u>phone:0123456</u>&l ...
- A CIRCULAR PROGRESSBAR STYLE USING AN ATTACHED VIEWMODEL
This blog post describes how to re-template the Silverlight ProgressBar control to render a circular ...
- 基于SlidePanelLayout实现ResideMenu
同步发表于http://avenwu.net/2015/02/24/custom_slide_panel_layout_as_reside_style_on_dribble_and_qq Fork o ...
- Gson 和 FastJson 性能测试
使用版本: compile 'com.google.code.gson:gson:2.7' compile 'com.alibaba:fastjson:1.2.17' 评测样板为一个People数组, ...
- Android上面安装Linux的方法
方法一: 并行安装Linux(不在Android操作系统之上运行,需要设备已经unlocked并且rooted) 我还没玩过.放两个书签: How to Install Ubuntu on Andro ...