【原创】C#搭建足球赛事资料库与预测平台(3) 基础数据表设计 - 数据之巅 - 博客园
本文原文地址:http://www.cnblogs.com/asxinyu/p/4445324.html
基础数据表虽然不重要,但是必不可少的部分,主要包括以下几个表及其作用:
1.赛事资料表:表明某一项赛事属于哪个国家,哪个洲,以及对应的赛事级别,赛事类型等信息,不同的级别在分析预测时筛选场次有用。
2.赛季资料表:赛季是一个重要的东西,每一场比赛(除了友谊赛之外)都属于某个赛季,而赛季又属于某个联赛的,赛季名称以及编号是查询中经常要用到的东西,历史赛季可以用于数据检验和统计,当前赛季才是我们要预测和掌握的,都是非常重要的。
3.球队资料表:主要存储球队的名称,以及缩写,球队编号等信息,主要目的是标识球队的唯一性,在混合数据源采集的时候,需要对名称进行统一,本平台只是考虑到以后的对接,可能用得上,先规划好,实际上前2个版本也有过类似的情况,非常复杂,所以最好还是要稳定一个数据源。
4.赛季轮次表:每个赛季,不管是联赛还是杯赛,都是按照轮进行的,每一轮不仅有轮号,最好是划分一个编号,这样便于操作。这种数据量比较小,没必要分库。
5.赔率公司信息表:赔率公司信息表主要存储常规的的赔率公司的信息,以及是否采集相关的赔率类型,数据库初始化的时候就已经固定好了,除非特殊要求可以自己添加,一般不需要管。已经默认包括了很多权威的赔率公司,足够使用。
下面将对上述5个基础的数据库的结构进行分析。
根据联赛的重要程度、权威性,我们手动对联赛的等级进行了分类,1-7,1最高,像欧洲五大联赛就属于第1级别的。其他二级联赛或者欧洲其他一些联赛都分为2,3级别。赛事资料的国家和洲际名称,可以根据实际情况进行更新,由于我的数据源中已经规划得比较好,采集的时候,流程控制一下,所以也没有特殊处理。赛事类型暂时只有2种:联赛和杯赛,分布是1和2,详细的结构如下,本项目的所有数据表设计都遵循了XCode推荐的用法。
编号
字段名
类型
长度
描述
备注
1
Id
int
10
编号
自增主键
2
EventId
int
10
赛事编号
索引
3
EventName
nvarchar(50)
50
赛事名称
索引
4
Country
nvarchar(20)
20
国家
5
Levels
int
10
赛事级别
6
TeamCount
int
10
球队数
7
InternalName
nvarchar(50)
50
洲名称
8
EventType
int
10
赛事类型
9
IsUse
bit
1
使用有效
1个赛事,分为多个赛季,一般是1年1个赛季,赛季编号也是一个重要的信息,在很多地方都有用。赛季资料表,基本在第一次更新后,其他很少更新,一年一次。亚洲一般是1年1个赛季,3-11月,像欧洲一般是每年的8月到第二年的5左右,每个国家不一样,但更新频率很低。本项目在设计的时候,对一些简单的字段都进行了冗余,比如赛季表中也要包括赛事编号,名称等信息,是因为这些信息的使用非常频繁,如果频繁通过扩展属性去获取,哪怕丝毫缓存也不适当,所以基础信息表以至于实际的场次表中,对这些常规信息字段都进行了冗余。如下图所示:
编号
字段名
类型
长度
描述
备注
1
Id
int
4
编号
自增主键
2
EventId
int
4
赛事编号
索引
3
EventName
nvarchar(50)
50
赛事名称
4
SeasonId
int
4
赛季编号
索引
5
SeasonName
nvarchar(50)
100
赛季名称
6
IsHistory
bit
1
是否历史
作为一个备用资料,可以比较简单的看一看,主要是球队的名称和编号,以及当前的赛季信息:
编号
字段名
类型
长度
描述
备注
1
Id
int
4
编号
自增主键
2
TeamId
int
4
球队编号
索引
3
Name
nvarchar(30)
60
球队名称
索引
4
OnceName
nvarchar(60)
60
曾用名
5
EventName
nvarchar(30)
60
赛事
6
SeasonId
int
4
赛季编号
索引
7
SeasonName
nvarchar(30)
60
赛季名称
赛季轮次表将每个赛季每一轮的信息保存下来,每一场比赛都属于1个轮次,同时考虑到杯赛的轮,是晋级形式,如小组赛,半决赛,决赛等等,就不保存轮次号,而是保存轮名称(RoundName),是联赛的时候,RoundName等于字符串的RoundId。
编号
字段名
类型
长度
描述
备注
1
Id
int
4
编号
2
SeasonID
int
4
赛季编号
3
RoundId
int
4
轮编号
4
RoundName
nvarchar(30)
60
轮名称
杯赛
5
EventName
nvarchar(30)
60
赛事名称
6
EventId
int
4
赛事编号
7
EventType
int
10
赛事类型
这里的赔率公司主要是采集欧赔和亚盘及大小盘的动态赔率用的。其他半全场,比分的指数基本都只采集几个固定的公司,如澳门,威廉。
编号
字段名
类型
长度
描述
备注
1
Id
int
4
编号
自增主键
2
Name
nvarchar(30)
60
名称
索引
3
OnceName
nvarchar(30)
60
曾用名
4
ComanyID
int
4
公司编号
索引
5
IsTrading
bit
1
是否交易平台
6
IsAuthority
bit
1
是否权威
7
IsEurope
bit
1
是否欧盘
8
IsAsia
bit
1
是否亚盘
9
IsBigSmall
bit
1
是否大小盘
10
IsGolas
bit
1
是否进球盘
今天的基础数据库设计就到此为止,由于全部采用XCode进行设计和开发,所以数据库的设计直接使用的XML文件,然后用XCoder生成实体类即可,如下图所示:
是不是很爽,我这里直接提供了XML文件,懂XCode的朋友可以先睹为快,至于不懂X组件的,接着往下看,这些数据库的实体操作类都会逐步公开的。
下载:基础信息实体.xml
评论