I have one MySQL table which contains:
- a question
- 4 possible answers separated by a comma
- a number (0-3) representing the correct answer.
- unique id
with about 2000 entries.
I also have another table of users. The goal of each user is to solve all of the questions on the website.
I need to be able to randomly pick about 30 questions that the user hasn't answered yet.
How do you suggest I should store data about the questions the user has already solved?
At first I thought about a table with | user_id | – | question_id | (so each time the user solves a question correctly a new row will be added), but I don't know how I'll be able to pick 30 rows that he hasn't answered yet..
Best Answer
Considering that the question is labeled
database-design
I will offer a solution without that CSV field. Even if you decide to keep it, this may offer some ideas.Question
contains all possible questions.Answer
has all possible answers (to any question)QuestionAnswer
contains all QA combinations offered, note that there must exist a default answer for "I do not know".UserQA
contains questions user answered.To get questions that a user with
specific_UserId
has not yet answeredOr, better if there may be some new questions which do not have defined answers yet