【问题标题】:need mySQL/php advice how to build specific mysql db需要 mySQL/php 建议如何构建特定的 mysql db
【发布时间】:2011-11-27 07:14:40
【问题描述】:

以下描述是一个带有问题和答案的简单示例。但是我网站的逻辑是类似的。

假设表格是:

USERS table: USER_ID, etc
QUESTIONS table: QUESTION_ID, TEXT, CATEGORY, CORRECT_RESPONSE, AVAILABLE
RESPONSES table: QUESTION_ID, USER_ID, RESPONSE_VALUE
PROFILE table: USER_ID, CATEGORY_Questions, YEAR, NUMBER_OF_ANSWERED, Number_OF_CORRECT, POINTS

用户可以在几个小时内回答这些问题。每个问题都有相同的 3 种答案选择 YES/NO/DEPENDS。

在一段时间过去之前没有人知道答案(甚至是管理员)。同时,用户可以选择他们的响应,该响应存储在 RESPONSES 表中。

一段时间后,我将手动将CORRECT_RESPONSE 添加到mysql 表中,并将问题标记为AVAILABLE="NO"。所以用户不能再回答这个问题了。

然后我想针对每个不可用的问题(ID)自动检查用户的 RESPONSE_VALUE 以查看他们是否选择正确。然后为每个正确答案加分。

我制作了另一个名为 Profile 的表格,其中存储了 Userid、问题类别、回答的数量、正确的数量、时间段以及该类别问题获得的分数。我这样做是为了更快地为每个类别的每个用户获取统计信息等。

因此,在我将问题“标记”为已完成 (AVAILABLE="NO") 并提交 CORRECT_RESPONSE 后,检查用户的正确 RESPONSE_VALUEs 然后更新配置文件表的最佳方法是什么?

【问题讨论】:

    标签: php mysql database


    【解决方案1】:

    要添加到 Galen 所说的内容,您需要添加一个变量

     $num_correct++; while looping through the query
            update PROFILE SET Number_OF_CORRECT = $num_correct WHERE USER_ID=responses.user_id
    

    【讨论】:

      【解决方案2】:

      遍历用户并运行这些查询:

      得到回答的全部问题

      select responses.question_id from responses where responses.user_id=USER_ID
      

      获得正确答案的数量

      select responses.question_id from responses where responses.user_id=USER_ID and responses.question_id = questions.question_id and responses.response_value=questions.correct_response
      

      编辑

      我假设您有某种管理界面。我只需添加一个“正确答案”按钮,该按钮运行代码以更正所有答案。如果您没有管理界面,最简单的方法是将单个脚本放在运行更正的受保护文件夹中。

      【讨论】:

      • 感谢您的回答。也许我不是很清楚。我不是指一个特定的查询,而是使用什么方法。 Cronjob、Triggers 等。具体怎么做呢? (我以前从未使用过)
      • 是的,我有一个管理面板。因此,例如,您建议,当我添加 CORRECT_RESPONSE 并将问题标记为已完成时,也运行此代码,对吗?所以不需要 cron 作业、触发器等?
      • 是的,如果可以的话,您应该将代码合并到您的管理面板中,以便在问题被标记为已完成时使用。如果不可能的话,一个单独的脚本就可以了。不需要 cron/触发器。
      • 这是最简单的部分......当您循环访问所有收集此数据的用户时,请确保运行查询以更新该用户的信息。
      猜你喜欢
      • 1970-01-01
      • 2014-06-18
      • 2013-01-02
      • 2011-05-02
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多