我正在开发一个可以让人们回答问题的应用,并且它已经在不同的列中存储了正确和不正确的问题的数量。对于其他功能(例如所有时间得分),我需要获取每天,所有时间等的总应答量。

因此,最好:
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/

10-16 15:37