我有一个应用程序(更可能是一个测试应用程序),我把我的1000个测试都保存在mysql数据库中,我想从这个表中检索一个随机问题,当用户请求一个时,我可以使用mysql中的rand()函数轻松地完成。我的问题是,我不想给同一个问题两次或两次以上的用户,我如何才能保持检索问题的记录?我必须为每个用户创建表吗?这不会增加装载时间吗??请帮帮我,任何帮助都是很大的帮助。
-问候

最佳答案

如果您需要短时间使用,请使用用户的$_SESSION
如果您需要长期(比如说明天,不要问同样的问题)-您必须为usersToQuestions创建额外的表,其中存储用户id和用户已经被问到的问题。
在两种情况下检索问题都需要一个简单的条件:

SELECT * FROM questions
WHERE id not IN  ('implode(",", $_SESSION["asked"])')

SELECT * FROM questions
WHERE id not IN  (
    SELECT question_id FROM questions2users WHERE userid = 123
)

10-02 12:20
查看更多