我正在开发一个可以让人们回答问题的应用,并且它已经在不同的列中存储了正确和不正确的问题的数量。对于其他功能(例如所有时间得分),我需要获取每天,所有时间等的总应答量。
因此,最好:
1.将每个问题的答案存储到数据库:answer_correct,answer_incorrect和answers_total
要么
对于每个答案,将其存储到数据库:answer_correct,answer_incorrect,
在执行排名功能时,数据库SUM当时是那些吗?
我知道这似乎很通用,但是随着我对MySQL的深入了解,我正在尝试开发关于re:性能的最佳实践。
谢谢!
最佳答案
我建议采用以下结构:
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;
在每个答案上,您都会在此表中添加一条记录。在需要时,您可以从此表中获得给定时间内正确/错误答案的数量。
..我不知道是否允许用户多次回答一个问题,请记住主要索引。
关于mysql - SQL操作性能:列号,SUM,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11506965/