【原创】C#搭建足球赛事资料库与预测平台(4) 比赛信息数据表设计

          本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html

开源C#彩票数据资料库系列文章总目录http://www.cnblogs.com/asxinyu/p/4329642.html

  本篇文章开始将逐步介绍使用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

时间: 2024-08-02 11:02:41

【原创】C#搭建足球赛事资料库与预测平台(4) 比赛信息数据表设计的相关文章

足彩基础知识入门(4)赛事数据库与预测平台基础概念介绍(一)

在足球赛事数据库以及统计分析预测平台中,有很多概念,如果不搞懂,很难进行下一步的工作.所以为了配合团队人员的学习和任务进行,特意编写这篇文章.如果有其他问题和不懂的,请留言,将根据情况进行更新. 本文原文地址:足彩基础知识入门(4)赛事数据库与预测平台基础概念介绍(一) 1.指数1/2/3.... 我在 足彩基础知识入门(3)足彩赔率的本质 一文中介绍了赔率的概念,那么指数的概念和赔率以及结果是相关的.我们举个例子: 如上图的比赛,前面是竞彩非让球的赔率:1.74-3.25-4.15,也就是说

当VR踏入足球赛事会是如何?用数学运算又是如何?

我们可以一起想像一下开赛后第一球进网时,所有人的VR 装置全切换到进球球员的视角,剎那间观众从前锋眼中看见球门,接着画面切换至守门员视角,最后停在球门后方视野.没有VR 装置的观众则透过智能型手机投影3D 全像,回放射门精彩画面:而当球员冲向场边与球迷一同欢庆时,植入球员的装备甚至是皮肤中的生物辨识传感器则随时将球员的体能状态回报给球队经理.(部分文章内容:SBFPLAY胜博发直播 http://www.cf.org.tw/) 上述内容听起来或许太不真实,但回顾20.30 年前的足球比赛即可发现

彩票分析与预测平台-开发简介

开发背景 作为一个如假包换的挨踢工人,平时不抽烟.不喝酒的实在无趣.除了平日看看电影.研究下技术没别的事情可做了.突发奇想找点乐子打发下无聊的下班时间.一天经朋友介绍推荐我去玩下彩票跟股票,听说消遣之余说不定还能赚点小钱.我想闲着也是闲着,作为一名IT码农也可以拿出看家本领来,给自己找点事情做下也不错,说干就干!抱着学习的态度玩一下也好.对于彩票和股票,那就先从彩票开始吧!(PS:就个人而言,股票还算一个什么高大上的东西) 说起彩票,目前常见的有三大分类:数字.高频.竞技.还有各种地方性彩票!彩

基于Web Service的客户端框架搭建一:C#使用Http Post方式传递Json数据字符串调用Web Service

引言 前段时间一直在做一个ERP系统,随着系统功能的完善,客户端(CS模式)变得越来越臃肿.现在想将业务逻辑层以下部分和界面层分离,使用Web Service来做.由于C#中通过直接添加引用的方来调用Web Service的方式不够灵活,故采取手动发送Http请求的方式来调用Web Service.最后选择使用Post方式来调用Web Service,至于安全性和效率暂不考虑.在学习使用的过程,遇到了很多问题,也花了很长时间来解决,网上相关的帖子很少,如果各位在使用的过程中有一些问题难以解决,可

使用 Jenkins 搭建 iOS/Android 持续集成打包平台【转】

背景描述 根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包.而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品.运营.测试等人员)通过手机扫描二维码后就能直接安装测试包. 该需求具有一定的普遍性,基本上所有开发APP的团队都可能会用到,因此我将整个需求实现的过程整理后形成此文,并且真正地做到了零基础上手,到手即飞.开箱即用,希望能对大家有所帮助. 首先,先给大家展示下平台建设完成后的整体效果: 该平台主要实现的功能有3点:

Activiti工作流框架学习(一)——环境的搭建和数据表的了解

一.什么是工作流 工作流(Workflow),就是"业务过程的部分或整体在计算机应用环境下的自动化",它主要解决的是"使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现". 工作流管理系统(Workflow Management System,WfMS)是一个软件系统,它完成工作量的定义和管理,并按照在系统中预先定义好的工作流逻辑进行工作流实例的执行.工作流管理系统不是企业的业务系统,而是为企业

【原创】如何将多个工作簿中相同格式的工作表合并到一个工作表中

如何将多个工作簿中相同格式的工作表合并到一个工作表中 Sub Books2Sheets() '定义对话框变量 Application.ScreenUpdating = False Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) '新建一个工作簿 Dim newwb As Workbook Set newwb = Workbooks.Add With fd If .Show = -1 The

强烈推荐一款搭建企业管理系统的快速开发平台

由于市场不断扩大,销售人员的不断增加以及客户的积累.传统的EXCEL客户拜访表已不能满足现有的需求.因为传统的表单每次数据分析需要将四五十个销售的数据整理成报表需要大量的时间. 公司销售总监交给了我一个任务,想做一个企业客户管理系统便于数据分析,更好地开展工作. 接到这个任务,我有点蒙圈,负责工程中心做云平台开发的同事每天也忙得不可以开交,我去哪里找人来做这个项目. 我知道一个项目至少需要一个团队,没有架构师.没有专业美工,没有前端.什么也没有,怎么开展?好愁呀~~~ 由于市场不断扩大,销售人员

【原创】搭建Java版WebService

什么是WebServices? 它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web应用程序分支,是自包含.自描述.模块化的应用,可以发布.定位.通过web调用.Web Service是一个应用组件,它逻辑性的为其他应用程序提供数据与服务.各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问Web Service,通过Web Service内部执行得到所需结果.Web Service可以执行从简单的请求到复杂商务处理的任何功