Разработка базы данных MySql для программы викторины

В настоящее время я работаю над проектом, в котором я создаю приложение для викторины. Он будет иметь возможность принимать викторины с несколькими вариантами ответов или ответами на короткий ответ, между 10-20 вопросами. Он должен иметь возможность проверять ответы пользователя на правильные ответы, а затем следить за ответами пользователя.

Позже я могу реализовать фоновый компонент для создания викторинов в Интернете, но на данный момент я оставлю это до непосредственной работы с базой данных.

Теперь для моего вопроса .. Я довольно потерял, как создать свою базу данных и таблицы, чтобы разрешить все функции. Вот как я сейчас его создал:

Таблица опросов

  • строка имени
  • строка id

Таблица вопросов

  • строка id
  • соответствующая строка идентификатора викторины
  • фактическая строка текста вопроса

Таблица ответов

  • соответствующая строка идентификатора викторины
  • соответствующая строка вопроса id
  • строка текстового ответа
  • строка if_correct_answer

Таким образом, каждая викторина будет иметь свой собственный идентификатор, тогда каждый вопрос будет иметь свой собственный идентификатор, а также его идентификатор родительского викторины, а затем ответы будут иметь идентификатор родительского викторины и родительский идентификатор вопроса.

На данный момент у меня есть проблема с правильным ответом: если они выберут правильный ответ, строка if_correct_answer будет иметь значение больше 0, а затем в конце будет добавлено значение всех их ответов и вот сколько они получили.

Является ли это хорошим способом разработки моей базы данных? Я видел основную идею на другом посту здесь, но я не уверен, полностью ли я ее понимаю или правильно использую. Я в основном просто путаюсь о том, как координировать все разные идентификаторы. (Я новичок в mySQL и PHP, что, вероятно, не помогает)

Ваша структура стола выглядит хорошо для меня. Вам нужна другая таблица, чтобы сохранить ответ пользователя.

таблица ответов пользователя – грубая структура

  • Я бы
  • Идентификатор пользователя
  • quiz_id
  • question_id
  • answer_id
  • answered_date

И вам нужна еще одна таблица для хранения базовой информации пользователя, такого как имя, user_id, телефон и т. Д.

Просто идея, вы можете создать таблицу ссылок на вопросы для опросов, а затем вы можете создать набор вопросов, которые могут быть использованы для создания новых викторин. Грубая схема:

Таблица опросов

  • строка имени
  • строка id

Вопрос к таблице викторин

  • quiz id
  • идентификатор вопроса

Таблица вопросов

  • строка id
  • фактическая строка текста вопроса

Таблица ответов

  • строка id
  • соответствующая строка вопроса id
  • строка текстового ответа

таблица ответов пользователя – грубая структура

  • Я бы
  • Идентификатор пользователя
  • quiz_id
  • question_id
  • answer_id
  • answered_date
  • строка if_correct_answer