我有一個遊戲。在遊戲中,人們從2個選項中做出許多選擇。mysql存儲正確和錯誤的答案字符串
選擇可以是對還是錯,我通過遊戲(可以是一個非常大的長度)將其運行結果存儲爲一個字符串,其中1表示正確答案,0表示錯誤答案。
因此,例如,玩家128937
將在其運行列中將字符串00010101010010001010111
存儲爲varchar(5000)
。
有沒有更好的方法可以將這些信息存儲在MYSQL中? (我也使用PHP如果可以幫助)
我有一個遊戲。在遊戲中,人們從2個選項中做出許多選擇。mysql存儲正確和錯誤的答案字符串
選擇可以是對還是錯,我通過遊戲(可以是一個非常大的長度)將其運行結果存儲爲一個字符串,其中1表示正確答案,0表示錯誤答案。
因此,例如,玩家128937
將在其運行列中將字符串00010101010010001010111
存儲爲varchar(5000)
。
有沒有更好的方法可以將這些信息存儲在MYSQL中? (我也使用PHP如果可以幫助)
爲什麼不使用tinyint(1)爲每個選項而不是使用字符串?
如果我理解正確,我不能這樣做,因爲它需要太多的列...並且拉列將緩慢... – David19801
就像拉字符串一樣緩慢;) – craig1231
我將創建一個新的表(說這就是所謂的「答案」)有三列: question_id,USER_ID和答案(這將持有的0/1值)
每個玩家回答你一個問題的時間在此表中插入一個新條目。
這樣它會更容易保持正確/錯誤答案
我認爲這將是非常記憶無益......我希望有一個數據類型存在,我可以使用列比varchar(5000)更好.. – David19801
@ David19801:對於一行,question_id(INT),user_id(INT),answer(TINYINT)= 4字節+ 4字節+ 1字節= 9字節。 – Crontab
@Crontab:這將是每行。所以有100個項目,這將需要900個字節,varchar將需要200? – David19801
的總和我會做多個表
選擇
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)
有沒有知道具體數據的任何一點?第一個錯誤,然後第二個右邊等?因爲如果你只需要這個總和,那麼爲他所得到的金額保存2列一個,並且爲他的錯誤金額保存一列 –