2013-08-16 58 views
0

這個問題並不是什麼新東西,但它有一點小小的變化。 我的網頁是用戶下注的會員頁面。我的想法是爲用戶創建一個新表(使用命名約定,如TABLE userBet + $ userid)投注。用戶登錄信息已經處理完畢,我的目標是將用戶的賭注保存到新表中。用戶註冊時創建的表格。這將有希望使分數計數更容易。我是對還是錯?這可以以更好的方式完成嗎? (一切都在PHP MySQL的完成)在php中創建註冊表

用戶註冊 - 表,投注獲得創建

> 「CREATE TABLE $用戶ID,id_bet,遊戲,結果,指出」

然後匹配這張表反對正確的結果?

所以我再次問:這是一個好辦法嗎?用userID創建一個表是一件聰明的事情嗎?

EDIT

的投注總是40點的匹配,這使得與巨大的列和行的表。 我應該製作40個表格,每個遊戲一個呢?並把所有用戶放在那裏?

+2

強烈建議不要更改用戶輸入模式。只需要user_id表user_id列 –

+0

如果我有每個賭注的user_bets表,那麼我將有一個難以計數的分數?或者如果這是最好的方式,那麼我需要這樣做:)? – Rocksteady

+0

你得計算什麼分數? Total points?:)'SELECT SUM(points)FROM user_bets WHERE user_id = $ userID'。這將給你給定的用戶ID上的點的總和。如果你有單獨的表,你將有'SELECT SUM(points)FROM $ userID',這是完全相同的,但查詢不同的表。如果你想使用查詢緩存,查詢不同的表格會讓你很難緩存結果,如果你有10000個用戶,你最終會在你的數據庫中得到10 000個表格。你的分貝會變得沉重。 –

回答

1

張貼作爲一個答案,由於作者的要求:)

建議數據庫模式:

matches

id | name | 
--------------- 
1 | A vs B | 

user_bets

id | user_id | match_id | points | result | 
------------------------------------------- 
1 | X | 1  | Y | Z | 

凡match_id有關上matchesid

USER_ID = user.id

user_bets是隻有一個表,包含的所有信息。不需要單獨的表格,因爲從評論中可以明顯看出,它被認爲是不好的做法,通過用戶輸入來改變數據庫模式。

3

我是對還是錯?

你錯了。動態地改變你的數據庫模式只會使它更難一起工作。這樣做沒有什麼好處。您可以通過將所有投注存儲在同一張表中來做同樣的事情,添加一列userid