Страницы

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

среда, 5 июня 2019 г.

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

В продолжение этого вопроса
Имеется примерно такая структура БД:
Таблица Тест хранит в себе номер вопроса и три ответа к нему.
Таблица Answer - правильный ответ к вопросу.
Интересует, собственно, таблица Тест. Она не расширяема, как видите. Чтобы создать новый тест - нужно создавать новую таблицу, чтобы добавить ещё несколько вариантов ответа - нужно создавать новые столбцы.
Как сделать правильно? Спасибо.


Ответ

Вот хорошее расширяемое решение:
[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 ""

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

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