存储和检索用户学习进度的历史数据

时间:2011-12-06 04:22:27

标签: php mysql

前言:我正在开发一个应用程序来测试多个主题的用户。我希望保留其进度的历史记录,并能够轻松地向用户呈现每个主题的每日,每周和每月的进度视图。

我桌子的初始设计如下:

CREATE TABLE IF NOT EXISTS `user_topics` (
  `ProgressID` int(11) NOT NULL,
  `UserID` int(11) NOT NULL,
  `TopicID` int(11) NOT NULL,
  `Level` decimal(3,1) NOT NULL,
  `TotalCorrect` int(11) NOT NULL,
  `QuestionsAsked` int(11) NOT NULL,
  `DateTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
   PRIMARY KEY (`ProgressID`)
 ) 

我是否会沿着正确的路线前进/如何检索我需要的数据以提供可呈现的历史记录?

修改

我想要显示一个时间作为比例和%正确的图表,这将在用户点击查看其主题的每月/每周进度时完成。我希望每个主题查看每周/每月数据之间的加载时间非常透明。

是否应该在一次调用中检索数据(只选择从日期x到现在的行),然后将其留给单个客户端将数据组织成天/月等然后显示数据?

1 个答案:

答案 0 :(得分:0)

您可以使用date_between查询两个日期之间的所有进度记录,如下所示:

SELECT * FROM 'user_topics' WHERE 'DateTime' between '2008-12-23' AND '2008-12-25';

here is the mysql documentation for 'between ... and ...'

现在,使用一些图表工具,您可以获得最后一天/周/月/年的所有进度并显示其进度。