本博客所有文章分類的總目錄:http://www.cnblogs.com/asxinyu/p/4288836.html
開源C#彩票數據資料庫系列文章總目錄:http://www.cnblogs.com/asxinyu/p/4329642.html
本篇文章開始將逐步介紹使用C#搭建足球賽事資料庫與預測平台的相關細節。還是先從數據庫開始,從本文開始將逐步對每個核心實體類和數據庫設計相關的內容進行講解,並公布源代碼,至於能不能跑起來,看的看個人努力。由於沒有時間將所有相關業務都簡述清楚,所以也只好將需求和表設計一起進行。本人也是走了很多彎路的。考慮到系統數據表很多,按照功能不同,分為基礎數據表,比賽相關表,賠率相關表,以及特殊數據表4個部分分別進行講解,請大家關注博客。
今天要關注就是核心的賠率指數表,由於賠率指數表的內容比較多,所以將分為2篇來進行。賠率指數是賽事預測的重要參考條件,雖然有一定的隨機因素,但是根據長期的分析和統計,賠率還是具有很強的指導性。所以賠率指數數據庫的設計也尤為重要。一方面要考慮到日益增長的賠率數據越來越多,需要確保查詢分析的速度;另外一方面賠率的類型比較復雜,設計要比較合理,才能在后續的統計分析和預測模型中方便使用。今天先介紹常規的賠率指數表的設計,主要是勝平負指數,大小盤,半全場,總進球,比分指數的數據庫設計。
本文原文地址:http://www.cnblogs.com/asxinyu/p/4476287.html
1.不得不說的XCode泛型基類
2年前剛學會XCode的時候,對XCode研究比較多,總結過一篇文章:關於泛型基類的相關知識,其中對XCode的泛型基類的作用和用法做了一個初步的概述,這些年用XCode做過很多小玩具,但由於項目太小,基本很難用得上泛型基類,因為要求有一些公共的字段才比較有用。這次的賠率指數數據表由於表的結構很多字段都相同,才想到用這個東西,的確簡單方便了很多,邏輯也很清晰。非常給你。具體的思想參考上面那篇文章,這里只給出一個泛型基類,繼承的截圖,以后在代碼中再着重介紹。
上面是泛型基類,實際的指數表,會進行繼承,這樣公共的查詢方法就只需要寫一次就OK了:
具體的暫時就不過多展開了,好好看那篇總結文章,應該會有收獲。所以我們先看看泛型基類對應的表的結構
2.泛型基類的表結構
泛型基類不直接對應表,是作為一個實體基類,為了節省后面的空間,因為所有的指數信息表都要繼承該類,所以基類的公共字段在這里發布出來,后面的相關表就直接只寫獨有的字段,公共字段就省略掉了。主要就是公司名稱和賽事名稱,場次編號以及時間這些公共信息。
編號 |
字段名 |
類型 |
長度 |
描述 |
備注 |
1 |
Id |
int |
10 |
編號 |
自增主鍵 |
2 |
CompanyID |
int |
10 |
公司編號 |
|
3 |
CompanyName |
nvarchar(20) |
20 |
公司名稱 |
|
4 |
EventName |
nvarchar(20) |
20 |
賽事名稱 |
分庫用 |
5 |
MatchID |
int |
10 |
場次編號 |
索引 |
6 |
UpdateTime |
datetime |
3 |
更新時間 |
3.勝平負指數表
以前版本將勝平負賠率指數稱為歐賠指數,不太准確,這一版本統一改為勝平負指數,指數記錄都是指某個賠率公司對某場比賽開出的賠率。勝平負指數的主要內容主要勝平負的賠率和賠率開出的相關信息,如公司,時間,賽前間隔等。也是按照 公司+聯賽 進行分庫的。看看基本的表結構,注意基類字段省略了:
編號 |
字段名 |
類型 |
長度 |
描述 |
備注 |
7 |
TimeInterval |
float |
53 |
賽前間隔 |
|
8 |
Odds3 |
float |
53 |
主勝賠率 |
|
9 |
Odds1 |
float |
53 |
主平賠率 |
|
10 |
Odds0 |
float |
53 |
主負賠率 |
|
11 |
LossRatio |
float |
53 |
賠付率 |
|
12 |
KellyIndex3 |
float |
53 |
凱利指數3 |
|
13 |
KellyIndex1 |
float |
53 |
凱利指數1 |
|
14 |
KellyIndex0 |
float |
53 |
凱利指數0 |
|
15 |
KellyVar3 |
float |
53 |
凱利方差3 |
|
16 |
KellyVar1 |
float |
53 |
凱利方差1 |
|
17 |
KellyVar0 |
float |
53 |
凱利方差0 |
4.半全場指數表
半全場指數和勝平負指數類似,只不過一個是半場+全場,1個是全場的結果,結果可能性多了,所以賠率肯定是要高的。當然這個玩法還是比較有趣的,有時間再細說。半全場指數表的開盤公司是非常多,但由於數據源的關系,個人能力有限,所以可用的公司沒有勝平負賠率那么多,但是這也沒關系,有幾家就足夠了,所以也進行了分庫。看看基本結構,注意基類字段省略了:
編號 |
字段名 |
類型 |
長度 |
描述 |
備注 |
7 |
Odd33 |
float |
53 |
勝勝 |
|
8 |
Odd31 |
float |
53 |
勝平 |
|
9 |
Odd30 |
float |
53 |
勝負 |
|
10 |
Odd13 |
float |
53 |
平勝 |
|
11 |
Odd11 |
float |
53 |
平平 |
|
12 |
Odd10 |
float |
53 |
平負 |
|
13 |
Odd03 |
float |
53 |
負勝 |
|
14 |
Odd01 |
float |
53 |
負平 |
|
15 |
Odd00 |
float |
53 |
負負 |
5.大小盤指數表
大小盤國彩的競彩以及北單暫時都沒有大小盤,但考慮到數據的完整性,本項目還是采集了大小盤的數據,和前面的結構類型,也是分庫進行。結構很簡單:
編號 |
字段名 |
類型 |
長度 |
描述 |
備注 |
7 |
TimeInterval |
float |
53 |
賽前間隔 |
|
8 |
Handicap |
float |
53 |
盤口 |
|
9 |
Big |
float |
53 |
大球賠率 |
|
10 |
Small |
float |
53 |
小球賠率 |
|
11 |
LossRatio |
float |
53 |
賠付率 |
6.總進球指數表
總進球玩法目前國彩是有的,目前是0-7+,和國外的差不多,所以這個數據還是比較有用的,唯一遺憾的是,數據源中總進球的開盤公司基本只有幾家。不管怎么樣,先采集再說。這個表的結構不僅包括了國彩的情況,還包括了區間的情況,以及單雙進球的賠率。所以功能比較多,根據實際的數據源使用:
編號 |
字段名 |
類型 |
長度 |
描述 |
備注 |
7 |
Odd0 |
float |
8 |
0球 |
|
8 |
Odd1 |
float |
8 |
1球 |
|
9 |
Odd2 |
float |
8 |
2球 |
|
10 |
Odd3 |
float |
8 |
3球 |
|
11 |
Odd4 |
float |
8 |
4球 |
|
12 |
Odd5 |
float |
8 |
5球 |
|
13 |
Odd6 |
float |
8 |
6球 |
|
14 |
Odd7 |
float |
8 |
7球 |
|
15 |
Odd01 |
float |
8 |
0-1球 |
歐賠用 |
16 |
Odd23 |
float |
8 |
2-3球 |
歐賠用 |
17 |
Odd46 |
float |
8 |
4-6球 |
歐賠用 |
18 |
OddSingle |
Float |
8 |
單數球 |
歐賠用 |
19 |
OddDouble |
Float |
8 |
雙數球 |
歐賠用 |
這些常見的指數表就介紹到這里,下一篇將繼續介紹其他指數表的結構。