Страницы

Поиск по вопросам

воскресенье, 15 марта 2020 г.

Система тестирования 2. Как правильней спроектировать БД?

#mysql #база_данных


В продолжение этого вопроса.

Имеется примерно такая структура БД:

Таблица Тест хранит в себе номер вопроса и три ответа к нему.

Таблица Answer - правильный ответ к вопросу.

Интересует, собственно, таблица Тест. Она не расширяема, как видите. Чтобы создать
новый тест - нужно создавать новую таблицу, чтобы добавить ещё несколько вариантов
ответа - нужно создавать новые столбцы.

Как сделать правильно? Спасибо.


    


Ответы

Ответ 1



Вот хорошее расширяемое решение: [question] id text qtype [answer] id text isright question_id order [user_answer] id user_id question_id answer_id text Пример данных: [question] id text qtype 1 "Сколько лун на небе?" 1 2 "Столица Франции?" 1 [answer] id text isright question_id order 1 "Одна" 1 1 1 2 "Две" 0 1 2 3 "Три" 0 1 3 4 "Париж" 1 2 1 5 "Лондон" 0 2 2 6 "Нью-Йорк" 0 2 3 [user_answer] id user_id question_id answer_id text 1 1 1 1 "" 2 1 2 2 ""

Ответ 2



QUESTION: idQ | TypeQ | TextQ TEST: id | idQ | Answer - привязываете сколько угодно ответов к вопросу ANSWER: id | idQ | TrueAnswer - правильные ответы привязываете к id вопроса

Комментариев нет:

Отправить комментарий