2012-01-25 52 views
3

我有一個遊戲。在遊戲中,人們從2個選項中做出許多選擇。mysql存儲正確和錯誤的答案字符串

選擇可以是對還是錯,我通過遊戲(可以是一個非常大的長度)將其運行結果存儲爲一個字符串,其中1表示正確答案,0表示錯誤答案。

因此,例如,玩家128937將在其運行列中將字符串00010101010010001010111存儲爲varchar(5000)

有沒有更好的方法可以將這些信息存儲在MYSQL中? (我也使用PHP如果可以幫助)

+0

有沒有知道具體數據的任何一點?第一個錯誤,然後第二個右邊等?因爲如果你只需要這個總和,那麼爲他所得到的金額保存2列一個,並且爲他的錯誤金額保存一列 –

回答

0

爲什麼不使用tinyint(1)爲每個選項而不是使用字符串?

+0

如果我理解正確,我不能這樣做,因爲它需要太多的列...並且拉列將緩慢... – David19801

+1

就像拉字符串一樣緩慢;) – craig1231

4

我將創建一個新的表(說這就是所謂的「答案」)有三列: question_id,USER_ID和答案(這將持有的0/1值)

每個玩家回答你一個問題的時間在此表中插入一個新條目。

這樣它會更容易保持正確/錯誤答案

+0

我認爲這將是非常記憶無益......我希望有一個數據類型存在,我可以使用列比varchar(5000)更好.. – David19801

+2

@ David19801:對於一行,question_id(INT),user_id(INT),answer(TINYINT)= 4字節+ 4字節+ 1字節= 9字節。 – Crontab

+0

@Crontab:這將是每行。所以有100個項目,這將需要900個字節,varchar將需要200? – David19801

0

的總和我會做多個表

選擇

id 
scenario (or other title) 

選項

id 
choice_id 
title (example: "go left" or "turn around and go home" 
correct (0 or 1) 

user_choices

user_id 
option_id 
choice_id (optional since choice_id is already in options table) 
相關問題