我正在開發基於時間的測驗項目,使用PHP和MySQL並存儲結果,如下表所示。PHP和MySQL基於時間的測驗應用程序
表:得分
sid |Question_ID|answer |is_correct|User_ID|score|score_calculated|time_taken
1 |10 |Manager|Y | 1 |200 | 0 |3.2
2 |10 |Emp |N | 2 |200 | 0 |2.4
3 |10 |Manager|Y | 3 |200 | 0 |6.5
4 |10 |Other |N | 4 |200 | 0 |8.3
5 |11 |Yellow |N | 1 |300 | 0 |2.3
5 |11 |green |N | 2 |300 | 0 |5.8
6 |11 |Red |Y | 3 |300 | 0 |6.4
7 |11 |Red |Y | 4 |300 | 0 |9.1
得分列包含標記爲每個問題
分數計算基於:
-
使用最小時間
- 正確答案= 100%
- 使用正確答案第二個最短時間= 75%
- 使用第三最小時間正確答案= 50%
- 其他正確答案= 25%
- 其他不正確的答案= 0
上述計算值需要對** 'score_calculated' 被更新**領域。 任何人都可以請建議一個查詢或方法來解決評分過程?
在插入結果之前在php中進行計算?你可以在sql中寫一個很長的醜陋的if()/ case'結構,但它會很難維護。 –
@VaibhavDesai @ whizzzkid:謝謝你的回覆。這些計算只能在四個條目到達後才能完成,因爲我們需要獲得第一個最短時間,第二個最短時間等。您能否以視圖或觸發器爲例來點亮我。再次感謝。 –
@whizzzkid請參閱上面的評論.. –