天天看點

【原創】C#搭建足球賽事資料庫與預測平台(5) 賠率資料表設計1

【原創】C#搭建足球賽事資料庫與預測平台(5) 賠率資料表設計1

今天要關注就是核心的賠率指數表,由于賠率指數表的内容比較多,是以将分為2篇來進行。賠率指數是賽事預測的重要參考條件,雖然有一定的随機因素,但是根據長期的分析和統計,賠率還是具有很強的指導性。是以賠率指數資料庫的設計也尤為重要。一方面要考慮到日益增長的賠率資料越來越多,需要確定查詢分析的速度;另外一方面賠率的類型比較複雜,設計要比較合理,才能在後續的統計分析和預測模型中友善使用。今天先介紹正常的賠率指數表的設計,主要是勝平負指數,大小盤,半全場,總進球,比分指數的資料庫設計。

          本部落格所有文章分類的總目錄: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做過很多小玩具,但由于項目太小,基本很難用得上泛型基類,因為要求有一些公共的字段才比較有用。這次的賠率指數資料表由于表的結構很多字段都相同,才想到用這個東西,的确簡單友善了很多,邏輯也很清晰。非常給你。具體的思想參考上面那篇文章,這裡隻給出一個泛型基類,繼承的截圖,以後在代碼中再着重介紹。

【原創】C#搭建足球賽事資料庫與預測平台(5) 賠率資料表設計1

上面是泛型基類,實際的指數表,會進行繼承,這樣公共的查詢方法就隻需要寫一次就OK了:

【原創】C#搭建足球賽事資料庫與預測平台(5) 賠率資料表設計1

具體的暫時就不過多展開了,好好看那篇總結文章,應該會有收獲。是以我們先看看泛型基類對應的表的結構

2.泛型基類的表結構

  泛型基類不直接對應表,是作為一個實體基類,為了節省後面的空間,因為所有的指數資訊表都要繼承該類,是以基類的公共字段在這裡釋出出來,後面的相關表就直接隻寫獨有的字段,公共字段就省略掉了。主要就是公司名稱和賽事名稱,場次編号以及時間這些公共資訊。

編号 字段名 類型 長度 描述 備注
1 Id int 10 自增主鍵
2 CompanyID 公司編号
3 CompanyName nvarchar(20) 20 公司名稱
4 EventName 賽事名稱 分庫用
5 MatchID 場次編号 索引
6 UpdateTime datetime 更新時間

3.勝平負指數表

  以前版本将勝平負賠率指數稱為歐賠指數,不太準确,這一版本統一改為勝平負指數,指數記錄都是指某個賠率公司對某場比賽開出的賠率。勝平負指數的主要内容主要勝平負的賠率和賠率開出的相關資訊,如公司,時間,賽前間隔等。也是按照 公司+聯賽 進行分庫的。看看基本的表結構,注意基類字段省略了: 

7 TimeInterval float 53 賽前間隔
8 Odds3 主勝賠率
9 Odds1 主平賠率
Odds0 主負賠率
11 LossRatio 賠付率
12 KellyIndex3 凱利指數3
13 KellyIndex1 凱利指數1
14 KellyIndex0 凱利指數0
15 KellyVar3 凱利方差3
16 KellyVar1 凱利方差1
17 KellyVar0 凱利方差0

4.半全場指數表

  半全場指數和勝平負指數類似,隻不過一個是半場+全場,1個是全場的結果,結果可能性多了,是以賠率肯定是要高的。當然這個玩法還是比較有趣的,有時間再細說。半全場指數表的開盤公司是非常多,但由于資料源的關系,個人能力有限,是以可用的公司沒有勝平負賠率那麼多,但是這也沒關系,有幾家就足夠了,是以也進行了分庫。看看基本結構,注意基類字段省略了:  

Odd33 勝勝
Odd31 勝平
Odd30 勝負
Odd13 平勝
Odd11 平平
Odd10 平負
Odd03 負勝
Odd01 負平
Odd00 負負

5.大小盤指數表

  大小盤國彩的競彩以及北單暫時都沒有大小盤,但考慮到資料的完整性,本項目還是采集了大小盤的資料,和前面的結構類型,也是分庫進行。結構很簡單:

Handicap 盤口
Big 大球賠率
Small 小球賠率

6.總進球指數表

  總進球玩法目前國彩是有的,目前是0-7+,和國外的差不多,是以這個資料還是比較有用的,唯一遺憾的是,資料源中總進球的開盤公司基本隻有幾家。不管怎麼樣,先采集再說。這個表的結構不僅包括了國彩的情況,還包括了區間的情況,以及單雙進球的賠率。是以功能比較多,根據實際的資料源使用:

Odd0 0球
Odd1 1球
Odd2 2球
Odd3 3球
Odd4 4球
Odd5 5球
Odd6 6球
Odd7 7球
0-1球 歐賠用
Odd23 2-3球
Odd46 4-6球
18 OddSingle Float 單數球
19 OddDouble 雙數球

  這些常見的指數表就介紹到這裡,下一篇将繼續介紹其他指數表的結構。

.NET資料挖掘與機器學習,作者部落格:

http://www.cnblogs.com/asxinyu

E-mail:[email protected]

繼續閱讀