【原创】C#搭建足球赛事资料库与预测平台(3) 基础数据表设计
本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html
开源C#彩票数据资料库系列文章总目录:http://www.cnblogs.com/asxinyu/p/4329642.html
本篇文章开始将逐步介绍使用C#搭建足球赛事资料库与预测平台的相关细节。还是先从数据库开始,从本文开始将逐步对每个核心实体类和数据库设计相关的内容进行讲解,并公布源代码,至于能不能跑起来,看的看个人努力。数据库很庞大,且采用了XCode非常牛逼的分库技术,秒杀千万级乃至上亿的数据需求。而只需要最基本的C#技术,对我这种数据库文盲来说,真的帮助非常大。
由于数据表和业务是直接相关的,没有时间将所有相关业务都简述清楚,所以也只好将需求和表设计一起进行。相辅相成吧,如果思路有问题,大家可以交流提出自己的想法,当然必须要对足球赛事资料库有一定的了解和接触才行,本人也是走了很多弯路的。考虑到系统数据表很多,按照功能不同,分为基础数据表,比赛相关表,赔率相关表,以及特殊数据表4个部分分别进行讲解,请大家关注博客。
本文原文地址:http://www.cnblogs.com/asxinyu/p/4445324.html
1.基础数据表的范围
基础数据表虽然不重要,但是必不可少的部分,主要包括以下几个表及其作用:
1.赛事资料表:表明某一项赛事属于哪个国家,哪个洲,以及对应的赛事级别,赛事类型等信息,不同的级别在分析预测时筛选场次有用。
2.赛季资料表:赛季是一个重要的东西,每一场比赛(除了友谊赛之外)都属于某个赛季,而赛季又属于某个联赛的,赛季名称以及编号是查询中经常要用到的东西,历史赛季可以用于数据检验和统计,当前赛季才是我们要预测和掌握的,都是非常重要的。
3.球队资料表:主要存储球队的名称,以及缩写,球队编号等信息,主要目的是标识球队的唯一性,在混合数据源采集的时候,需要对名称进行统一,本平台只是考虑到以后的对接,可能用得上,先规划好,实际上前2个版本也有过类似的情况,非常复杂,所以最好还是要稳定一个数据源。
4.赛季轮次表:每个赛季,不管是联赛还是杯赛,都是按照轮进行的,每一轮不仅有轮号,最好是划分一个编号,这样便于操作。这种数据量比较小,没必要分库。
5.赔率公司信息表:赔率公司信息表主要存储常规的的赔率公司的信息,以及是否采集相关的赔率类型,数据库初始化的时候就已经固定好了,除非特殊要求可以自己添加,一般不需要管。已经默认包括了很多权威的赔率公司,足够使用。
下面将对上述5个基础的数据库的结构进行分析。
2.赛事资料表
根据联赛的重要程度、权威性,我们手动对联赛的等级进行了分类,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 |
使用有效 |
3.赛季资料表
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 |
是否历史 |
4.球队资料表
作为一个备用资料,可以比较简单的看一看,主要是球队的名称和编号,以及当前的赛季信息:
|
编号 |
字段名 |
类型 |
长度 |
描述 |
备注 |
|
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 |
赛季名称 |
5.赛季轮次表
赛季轮次表将每个赛季每一轮的信息保存下来,每一场比赛都属于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 |
赛事类型 |
6.赔率公司信息表
这里的赔率公司主要是采集欧赔和亚盘及大小盘的动态赔率用的。其他半全场,比分的指数基本都只采集几个固定的公司,如澳门,威廉。
|
编号 |
字段名 |
类型 |
长度 |
描述 |
备注 |
|
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
【原创】C#搭建足球赛事资料库与预测平台(3) 基础数据表设计的更多相关文章
- 【目录】C#搭建足球赛事资料库与预测平台与彩票数据分析目录
本博客所有文章分类的总目录链接:本博客博文总目录-实时更新 1.彩票数据分析与预测 6.智彩足球技术研究团队成员介绍 5.关于组建“智彩足球技术研究团队”的说明 4.为什么选择玩足球彩票以及玩彩票的心 ...
- 【原创】C#搭建足球赛事资料库与预测平台(6) 赔率数据表设计2
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 本篇文章开始将逐步介 ...
- 【原创】C#搭建足球赛事资料库与预测平台(2) 数据库与XCode组件
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 本篇文章开始将逐步 ...
- 【原创】C#搭建足球赛事资料库与预测平台(4) 比赛信息数据表设计
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 本篇文章开始将逐步介 ...
- 【原创】C#搭建足球赛事资料库与预测平台(5) 赔率数据表设计1
本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 开源C#彩票数据资料库系列文章总目录:http://www.cn ...
- C#搭建足球赛事资料库与预测平台(1) 基本介绍
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 去年4月到现在,一年 ...
- .NET足球赛事资料数据库平台SmartLottery开源发布——全球足球联赛应有尽有
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 前2个月,我的系列文 ...
- 使用 Jenkins 搭建 iOS/Android 持续集成打包平台【转】
背景描述 根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包.而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品.运营.测试等人 ...
- 基于SpringBoot+SSM实现的Dota2资料库智能管理平台
Dota2资料库智能管理平台的设计与实现 摘 要 当今社会,游戏产业蓬勃发展,如PC端的绝地求生.坦克世界.英雄联盟,再到移动端的王者荣耀.荒野行动的火爆.都离不开科学的游戏管理系统,游戏管理系 ...
随机推荐
- python web框架——初识tornado
一 Tornado概述 Tornado是FriendFeed使用的可扩展的非阻塞式web框架及其相关工具的开源版本.这个Web框架看起来有些像web.py或者Google的 webapp,不过为了能有 ...
- Python中的*args和**kwarg
可变参数 *args 允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple, 而 关键字参数 **kw 允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为 ...
- IoC实践--用Unity实现MVC5.0的IoC控制反转方法
在MVC中,控制器依赖于模型对数据进行处理,也可以说执行业务逻辑.我们可以使用依赖注入(DI)在控制层分离模型层,这边要用到Repository模式,在领域驱动设计(DDD)中,Repository翻 ...
- 智能配置item
iTerm配置说明 ==== **这是一个很智能的配置,不论你电脑里面有没有安装iTerm,不管你有没有.zshrc配置文件,git配置文件,git忽略文件,以及git的默认编辑器都已经更改为vim, ...
- Win C盘扩容
最近C盘真的空间越来越小了,记下简单的几个操作步骤以便以后用到. 参考文档: http://jingyan.baidu.com/article/90808022a6c6b7fd91c80fc8.htm ...
- latextools \cite 自动补全
最近在用latex写毕业论文,编辑环境用的是Sublime Text 2 加 latextools 插件,在使用latextools的\cite命令来引用参考文献时,我们希望输入\cite{ 后自动弹 ...
- 转:TinyXM--优秀的C++ XML解析器
读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好. TinyXML是一个开源的解 ...
- 解决vbox下安装centos不能上网问题
由于工作需要用到Centos做服务器,使用VBOX安装Centos7系统后发现不能上网,记录解决方法,以便下次使用.找到/etc/sysconfig/network-scripts/ifcfg-enp ...
- 前端开发者进阶之ECMAScript新特性【一】--Object.create
Object.create(prototype, descriptors) :创建一个具有指定原型且可选择性地包含指定属性的对象 参数:prototype 必需. 要用作原型的对象. 可以为 nul ...
- mac系统如何关闭root账户
第一步:系统偏好设置 ->用户与群组 第二步:登录选项 ->解锁 ->单击网络帐户服务器加入 第三步:打开目录实用工具 第四步:菜单栏 ->编辑 ->停用 Root 用户 ...