我的網站每天都有一個問題,並基於選擇用戶獲得經驗值(XP)的正確答案。一次只更新一次mySQL中的一組數據的策略
我在mySQL數據庫中有兩個表。 1)試題庫2)用戶
- 每個問題都有一個XP_VALUE(表試題庫)
- 每個用戶都有XP(在表的用戶)現在
,一旦他們回答正確的問題,我有如果一個與此查詢語句:
$mysqli->query("UPDATE users SET xp = xp + '$xp_value' WHERE id = '$userID'");
這樣做,當然,我順利XP更新的用戶帶來新的價值,然而,問題是,當然用戶可以回去回答問題無盡的時間來增加他/她的XP。
我正在尋找一種編碼策略,只更新xp一次,所有其他時間用戶試圖回答它不給xp的問題,只是如果他/她想要再次查看問題。
欣賞你的時間, oliver_foxx
要做到這一點,您需要跟蹤他們回答的問題。你需要一個數據庫設計,你可以說用戶X回答了問題A並獲得了經驗B.這樣,當進行更新時,你首先檢查用戶是否已經回答了這個問題 – Erick
跟蹤所有已經回答的問題用戶。爲此,您將需要一張單獨的桌子。當用戶回過頭來回答相同的問題時,應該檢查該表。如果該用戶有該問題的輸入,則向該用戶提供任何XP點。 –
你只更新用戶表,你怎麼知道用戶在哪個問題上得到了答案? – mitkosoft