小编Doc*_*lod的帖子

MySQL/PHP测验引擎 - 防止多次尝试

我正在使用PHP和MySQL编写基于Web的测验应用程序.我不想特别向你介绍它的细节,所以这就是(我认为)你需要知道的.

问题都是多项选择,可以存储在一个包含几列的简单表中:

  1. ID:问题编号(主索引)
  2. 类别:此问题属于的类别(例如动物,蔬菜,矿物质)
  3. 文字:问题干(例如什么是1 + 1?)
  4. 答1:可能的答案(例如2)
  5. 答2:可能的答案(例如3)
  6. 答3:可能的答案(例如4)
  7. CorrectAnswer:问题的正确答案(1,2或3(在这种情况下为1))

用户可以通过创建用户名和密码进行注册,然后尝试从类别中提问.

问题是我写的问题不止一次被尝试过.但是,用户需要获得有关其进度的详细反馈.对问题的第一次尝试至关重要,并有助于用户的整体'问题第一次回答'得分.因此,我需要跟踪问题的尝试次数.

由于应用程序设计灵活,我希望能够支持数百个用户尝试数千个问题.因此,尝试将此信息集成到用户表或问题表中似乎是不可能的.我想解决这个问题的方法是为每个用户在注册时为各个列创建一个新表.

  1. 表名:用户的个人表(例如TableForUser51204)
  2. QuestionID:用户尝试过的问题的ID.
  3. CorrectFirstTime:一个布尔值,表明第一次是否正确回答了问题.
  4. 正确:正确回答问题的次数.
  5. 不正确:错误回答问题的次数.

所以我想我想问的是,以这种方式组织数据库是否明智.是否有更好的方法而不是为每个用户创建一个新表?如果有500个用户和2000个问题,这会对性能造成多大影响?

谢谢.

php mysql database

4
推荐指数
1
解决办法
1503
查看次数

标签 统计

database ×1

mysql ×1

php ×1