1

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

因此,最好: 1. 将每个问题的答案存储到数据库中: answer_correct、answer_incorrect 和 answers_total

或者

  1. 对于每个答案,存储到数据库: answer_correct, answer_incorrect,
  2. 做排名功能的时候,数据库有没有那个时候的SUM?

我知道这看起来很通用,但是随着我对 MySQL 的深入了解,我正在尝试开发最佳实践:性能。

谢谢!

4

1 回答 1

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;

在每个答案上,您都会在此表中添加一条记录。当您需要时,您可以从该表中获得给定时间段内正确/错误答案的数量。

..我不知道是否允许用户多次回答一个问题,请注意主索引。

于 2012-07-16T15:07:54.797 回答