我正在开发一个让人们回答问题的应用程序,它已经在不同的列中存储了正确和错误问题的数量。对于其他功能(例如所有时间分数),我需要获得每天所回答的总金额,等等。
所以,最好是: 1.对于每个问题的答案,存储到DB:answer_correct,answer_incorrect和answers_total
OR
我知道这看起来很通用但随着我对MySQL的深入研究,我正在尝试开发最佳实践:性能。
谢谢!
答案 0 :(得分:0)
我建议采用以下结构:
CREATE TABLE IF NOT EXISTS `answers` (
`userId` int(11) NOT NULL,
`questionId` int(11) NOT NULL,
`isCorrect` tinyint(3) unsigned NOT NULL,
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`userId`,`questionId`),
KEY `isCorrect` (`isCorrect`),
KEY `time` (`time`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
在每个答案中,您都会在此表中添加记录。如果需要,您可以在此表中的给定时间段内获得正确/错误答案的数量。
..我不知道是否允许用户多次回答一个问题,请注意主要索引。