【发布时间】:2013-02-04 04:59:27
【问题描述】:
我正在创建一个基于 php 和 mysql 的 MCQ 测验。以下是我的主表的结构:
测验表:测验 id,quiz_category 类别表:id、title... 问题表:id、quiz id、categoryid、title... 答案表:id, question id...
首先,我在表格中填充了 150 多个测验、4 个类别、14000 多个问题和每个问题的正确答案。
为了节省时间,对于每个问题,从答案表https://stackoverflow.com/editing-helpalongwith 3 个其他随机答案中提取正确答案。
现在,当我只用两个测验对其进行测试时,它运行良好。但是在 150 次测验中,出现了几个问题:
- 数据库速度很慢,以后的测验需要很长时间才能加载问题
- 答案的随机化不再起作用 - 与正确答案一起,其他选项显示相同的条目,使用户可以轻松猜测正确答案。
您可以在我之前的 Stackoverflow 查询中看到我正在使用的代码。 https://stackoverflow.com/questions/14826573/randomising-questions-and-answers-php-quiz-not-working
您知道测验程序的理想查询应该是什么吗?
【问题讨论】:
-
您是否进行了一些分析以确定性能不佳是与数据库(查询等)还是应用程序逻辑(循环等)有关?
-
查看您的方案和索引也会有所帮助
-
嗨,史蒂夫,我是 php 编程新手。您要我发布表格的结构吗?另外,我在之前的帖子中发布了查询数据库的代码。 stackoverflow.com/questions/14826573/…
-
是的,我确实看到了您的 php 代码,但是您是否知道 PHP 代码是否是导致性能问题的原因,或者您正在运行的 SQL 查询是否执行缓慢。我猜想查看您的索引(或向相关字段添加索引)会有所帮助 - 但我需要查看您的数据库方案才能提出建议。
-
这里是数据库结构: