2013-02-22 196 views
0

我有一個會員網站,每個用戶每天可以在橄欖球比賽中進行多次投注。這個想法是總結每一天的積分,計算它們並在圖表中顯示它們(使用Google圖表API)。迄今爲止都很好。每天都會爲每個用戶計算新的積分,並與過去幾天的積分一起顯示在圖表上。這樣用戶就可以以曲線或圖表的形式查看他過去的結果。我唯一的猜測是製作一個帶有ID - 用戶名 - 點 - 輪的表格。我不希望我的數據庫因爲我的表格和查詢結構不佳而受到影響。在數據庫中保存積分歷史記錄

所以我的問題是:我應該如何在我的數據庫中設置它?

這是現在我的表:


表 - >會員
ID


用戶名密碼

(我的虛構表)。

表 - > MEMBERS_POINTS
ID
用戶名

回合


所以我成立了,從所需的圓形獲取用戶點查詢。這是一個好方法嗎?這會減慢我的數據庫嗎?每個用戶將玩30輪,並與幾個用戶的表可能會包含成千上萬的行。

查找帖子here但我沒有任何答案,我有一些不同的想法。

編輯

It's一個成員的網站,每一個註冊用戶必須把一次性的60倍投注,60個賭注都超過30天(我稱之爲發)分掉。每輪由2次投注組成,最多6分。總分將與領隊共同顯示,並與每天的獲勝者一起顯示。每個用戶應該能夠以圖表的形式看到他或她的過去分數。

1用戶= 60個賭注= 30天(兩輪總積分,並保持在創紀錄的每天點。

+1

我將definetly有一個日期時間字段,表示何時在您的members_point表中出現點和圓,以便您可以按天,按周,按月等查詢... – legrandviking 2013-02-22 21:27:34

+2

輪與天有關嗎?用戶可以擁有30輪的多個「遊戲」嗎?你真的需要解釋你想要表達的個別離散對象以及它們如何相互關聯。我想你也需要在每一輪投注/動作表以及? – 2013-02-22 21:28:21

+1

嘗試用現實的術語來解釋(例如,「應用程序將擁有任意數量的成員,每個成員可以有多個遊戲,每個遊戲可以有多個回合,每回合可以有X個投注/動作,每個回合將花費1天,我想按每場比賽,每輪和/或每日計算每個用戶的積分「)您的基本出發點應該是您需要的任何單個項目(用戶,遊戲,回合)以一對多或多對多的方式與其他項目聯繫起來應該有自己的表格。 – 2013-02-22 21:33:51

回答

2

有準備幾件事情就在這裏。

首先,你似乎關注從性能角度來看,你提到的設計應該是很好的(儘管見下文) - 數據庫非常擅長處理大量的數據,在MySQL上,像這樣的設計可能會增長到數百萬條記錄,而沒有任何實際的性能問題

其次,雖然有一個設計問題,你真的應該read up對數據庫設計來說太大了 - 在單個問題中回答太大 - 但是您的member_points表應該鏈接到member.id列(假設這是主鍵),而不是用戶名 - 如果用戶更改其用戶名,則必須更新全部他們的member_points記錄。

+0

謝謝!關於id列和設計結構的大量輸入。 – Handsken 2013-02-23 07:17:38