【原创】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


本文转自叶小钗 h数据之巅博客园博客,原文链接:http://www.cnblogs.com/asxinyu/p/Smart_Lottery_FootBall_DataBase_4.html,如需转载请自行联系原作者


相关文章
|
3月前
|
SQL API 定位技术
基于C#使用winform技术的游戏平台的实现【C#课程设计】
本文介绍了基于C#使用WinForms技术开发的游戏平台项目,包括项目结构、运行截图、实现功能、部分代码说明、数据库设计和完整代码资源。项目涵盖了登录注册、个人信息修改、游戏商城列表查看、游戏管理、用户信息管理、数据分析等功能。代码示例包括ListView和ImageList的使用、图片上传、图表插件使用和SQL工具类封装,以及高德地图天气API的调用。
基于C#使用winform技术的游戏平台的实现【C#课程设计】
|
3月前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
2月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
69 8
|
1月前
|
缓存 编译器 API
C# 一分钟浅谈:Roslyn 编译器平台介绍
【10月更文挑战第27天】Roslyn 是 Microsoft 开发的开源编译器平台,支持 C# 和 VB.NET。它将编译过程分解为多个阶段,并提供丰富的 API 供开发者分析、生成和修改代码。本文介绍了 Roslyn 的基本概念、安装配置、基础示例和高级应用,帮助开发者更好地理解和使用这一强大工具。
47 0
|
3月前
|
编译器 C# Android开发
Uno Platform 是一个用于构建跨平台应用程序的强大框架,它允许开发者使用 C# 和 XAML 来创建适用于多个平台的应用
Uno Platform 是一个用于构建跨平台应用程序的强大框架,它允许开发者使用 C# 和 XAML 来创建适用于多个平台的应用
328 8
|
3月前
|
SQL 开发框架 安全
并发集合与任务并行库:C#中的高效编程实践
在现代软件开发中,多核处理器普及使多线程编程成为提升性能的关键。然而,传统同步模型在高并发下易引发死锁等问题。为此,.NET Framework引入了任务并行库(TPL)和并发集合,简化并发编程并增强代码可维护性。并发集合允许多线程安全访问,如`ConcurrentQueue<T>`和`ConcurrentDictionary<TKey, TValue>`,有效避免数据不一致。TPL则通过`Task`类实现异步操作,提高开发效率。正确使用这些工具可显著提升程序性能,但也需注意任务取消和异常处理等常见问题。
55 1
|
4月前
|
C# 数据库
C# 使用 DbDataReader 来访问数据库
C# 使用 DbDataReader 来访问数据库
73 2
|
5月前
|
BI 数据处理
一体化的医学实验室信息系统源码,C#LIS系统源码
面向医学实验室的一体化平台提供标本流程管理、报告发布及科室管理支持。它与HIS无缝对接,简化患者信息录入,实现检验结果实时同步。系统自动处理数据、分类样本、计算参考范围,并对异常结果预警。条码管理简化样本追踪,质控管理提升检测准确性。平台还支持数据审核发布、历史结果查询对比、灵活报表打印及统计分析等功能,辅助科室管理和试剂库存控制,加强科室间沟通协作。
一体化的医学实验室信息系统源码,C#LIS系统源码
|
4月前
|
数据库 C#
C# 使用SqlDataAdapter和DataSet来访问数据库
C# 使用SqlDataAdapter和DataSet来访问数据库
37 0
|
6月前
|
开发框架 前端开发 .NET
LIMS(实验室)信息管理系统源码、有哪些应用领域?采用C# ASP.NET dotnet 3.5 开发的一套实验室信息系统源码
集成于VS 2019,EXT.NET前端和ASP.NET后端,搭配MSSQL 2018数据库。系统覆盖样品管理、数据分析、报表和项目管理等实验室全流程。应用广泛,包括生产质检(如石化、制药)、环保监测、试验研究等领域。随着技术发展,现代LIMS还融合了临床、电子实验室笔记本和SaaS等功能,以满足复杂多样的实验室管理需求。
83 3
LIMS(实验室)信息管理系统源码、有哪些应用领域?采用C# ASP.NET dotnet 3.5 开发的一套实验室信息系统源码