2013-03-27 17 views
1

我對MySQL(以及整個數據庫)相當陌生,所以我不確定存儲這種數據的最佳方法。什麼是最好的方法來存儲一個體育比賽的盒子得分數據?

我想存儲的統計數據爲體育賽事,我們將開始與冰球。每個玩家都有他們的職業生涯統計數據,但是我也有每場比賽的boxscores(我們希望在每場比賽結束時向玩家提供遊戲紙)。

我有一個包含涉及的團隊,日期和遊戲ID爲每個事件計劃表。我還有一個玩家表,它將他們的身份鏈接到玩家ID。

這是我想到的,到目前爲止這兩種方法:

  1. 使用存儲過程創建一個表,每 遊戲的進度,並在表格內,存儲所有玩家 IDS ,以及該特定遊戲的統計數據。當發生得分賽時,它改變當前遊戲桌的表數據和該玩家的職業生涯統計表。

  2. 或者是它最好創建一個單獨的「遊戲」分數表,記錄下每一個進球 播放(進球,點球等)上使用的遊戲ID & playerid作爲參考該表?

第一種方法可能會導致混亂的真快,如果我們預計將有100場比賽的賽季(個別遊戲的統計將在賽季末被移除,然後長期統計數據被保留)

第二方法最終可能會很快得到一張非常長的表格,隨着查詢的持續增長,查詢可能會變得很慢。

我傾向於第二種方法,但如果可能的話,希望聽到一些輸入。或者,也許我正在採取完全不正確的做法,並希望有人讓我走正確的道路。任何幫助是極大的讚賞。

回答

1

這真的取決於你想要的精細程度得到您的數據,但我傾向於從存儲過程望而卻步,寧願做任何業務邏輯代碼,它更易於維護。

我想有以下表格:

Player -> contains player specific items such as size, right-handed, age, etc 
PlayerStats-> contains player id, year (of current season), and aggregated stats... you could +1 to this table for scores and penalties for example 

Teams -> contains player id, and venue id, team name 
Venue -> Items about the arena such as location, average indoor temperature, etc 
Games -> contains a home team id (id from teams table) and away team (id from teams table), venue_id, home_box_score, and away_box_score, game_date 
PlayerGames -> contains player id, game id, and the game specific goals... For example any player that was in the game goes in here. If some one scores you +1 their score in this table AND the PlayerStats 

一般的表應該是一個具體事物的屬性導致它然後允許你加入數據來創建不同的報告很多更大的靈活性...

例如,我剛剛給你的名單可以找出像fleury這樣的守門員多少次打過ovechkin,並顯示ovechkin在fleury上得分的多少個進球以及通過方塊得分的比賽結果的統計比較(比如如果ovechkin在比賽中打入2個或更多的進球,fleury會贏或者輸掉比賽)。

+0

太好了,謝謝你的建議,我很感激。 – Neil 2013-03-27 22:08:44

相關問題