Было бы лучше сохранить возможные ответы в отдельной таблице. Это позволяет вам иметь любое количество ответов на вопрос, а не только 4. Это также позволяет вопросам иметь разное количество ответов. Если у вас есть несколько тестов, вам также может потребоваться таблица тестов.
Quizes:
id
name
Questions:
id
quiz
prompt
Answers:
id
question
prompt
QuizResult (someone taking a quiz)
id
quiz
// other information about the quiz taker, possibly including the time
Теперь правильный ответ становится намного сложнее. Я предпочитаю более высокие реализации здесь:
Каждый вопрос имеет значение, а каждый ответ имеет значение
Система, с которой я недавно работал, может назначать баллы для каждого вопроса и каждого ответа. Неправильные ответы часто получают 0, правильные ответы получают полную сумму. Вы также можете получить частично правильные ответы, используя этот метод. Это метод, с которым я бы пошел.
Вы можете сказать, что каждый вопрос стоит 10 баллов, или вы можете назначить разные веса различным вопросам:
Questions:
id
quiz
prompt
value (you can make this question worth more or less)
Answers:
question
prompt
value (you can make this answer worth more or less)
Сохранить правильный ответ в таблице ответов
Более простое (но менее надежное) решение - просто сказать, какой ответ верен в таблице ответов.
Answers:
question
prompt
is_correct
Сохраните правильный ответ в таблице вопросов
Я бы не рекомендовал это. Когда вы создаете вопрос, у него не будет правильного ответа, пока вы его не вставите. Это означает как минимум 3 запроса, чтобы правильно составить вопрос. Если вы используете зависимости внешнего ключа, это быстро станет раздражающим.