为每个用户创建随机测试问题的最佳方法

时间:2018-04-10 23:29:07

标签: php mysql laravel web

解决此问题的最佳方法是什么?

如果我有一个问题库,其中包含很多问题,我需要进行一项测试,从该银行获取特定数量的问题,并为每个用户随机化问题。

我要这样做的方法是创建以下表格

银行(将存储银行名称和说明) 问题(将存储银行的问题,每个问题都与具有外键bank_id的银行相关) 答案(答案与使用question_id的每个问题相关,并且有一列可以知道答案是否正确)

我虽然制作新表并将它们称为assigned_questions和assigned_answers,但它们具有相同的问题和答案表内容,但它们是随机的并为每个用户指定。然后在记录用户或学生参加考试的分数后删除问题和答案。

1 个答案:

答案 0 :(得分:0)

不要将您的问题复制到新表中。复制不好

您可以从问题表中随机选择问题

例如:

SELECT question FROM questions
INNER JOIN answers ON answers.question_id = questions.answer_id
ORDER BY RAND()
LIMIT 10

有关随机选择的详情:https://stackoverflow.com/a/12870681/3093731