Я разрабатываю базу данных для проекта, над которым я работаю. У меня есть 3 задачи (которые пользователь может выбрать из)Разработка эффективной базы данных для регистрации данных
- Первая задача дает 10 вопросов
- Вторая задача дает 20 вопросов
- Третья задача дает 30 вопросов
нотабене точность результата теста будет возрастать по мере увеличения количества вопросов.
Для каждого вопроса будут два ответа. Answer 1
и Answer 2
. Поэтому, если есть 10 вопросов, в общей сложности будет записано 20 ответов.
То, что я разработал до сих пор, представляет собой таблицу user
и таблицу test_result
. Стол test_result
- это часть, с которой мне сложно конструировать.
Таблица user
имеет следующие атрибуты
- идентификатор пользователя
- имя
- Дата регистрации
test_result
таблица имеет следующие атрибуты
- тест ID
- идентификатор пользователя (ссылки идентификатор пользователя в системе)
- тест взят раз
Моя проблема, я не знаю, как я собираюсь эффективно войти 10 ~ 30 вопрос ответы.
Я рассматриваю, используя test_result
таблицу
В таблице test_result
будет иметь следующие атрибуты
- тест ID
- идентификатор пользователя
- тест взят время
- ответ 1a
- ответ 1b
- ответ 2а
- ответ 2b
- ...
- ответ 60а
- ответ 60b **
, но я думаю, что должно быть более эффективным способом.
EDIT:
Для уточнения ...
Каждый вопрос будет записывать 2 разные ответы.
- Вопрос 1 будет иметь Ans1 Ans2.
- Вопрос 2 будет иметь Ans1 Ans2.
- и т.д ..
вплоть до 10 ~ 30 вопросов (количество вопросов меняется в зависимости от задачи, которую вы выбрали)
---- :: EDIT 2 ::
ОК ... Так что я придумал улучшенный дизайн, но я все еще борется.
Это выглядит следующим образом:
User
(user_id, имя, reg_date)
Test
(test_id типа [либо 1,2,3], категория [есть 5 различных категорий])
Response
(RESPONSE_ID, user_id, test_id, response_date, response_1a, response_1b, response_2a, response_2b, ..., response_30a, response_30b)
Но опять же, я бегу к проблеме наличия +1 20 колонок для таблицы Response
. Каждый ответ будет иметь числовые значения от 0 до 1.0.
Обратите внимание, что если test_id
является 1, было бы только 10 вопросов, так что столбцы в таблице Response
от response_11a
к response_30b
будет null
.
Пример записи будет:
Response
(1, 1, 1, 2015/04/30, 0,5, 0,5, 0,7, 0,7, 0,8, 0,8, ... (много записей). .., 1.0, 0.3, null, null, null, (все нули, потому что есть только 10 вопросов для test_id 1.))
Я не могу придумать другой способ сделать это. :/
Является ли это хорошим способом проектирования базы данных?
Таким образом, каждый вопрос будет записывать 2 разных ответов. – Blee
Ну, это было то, что вы сказали, что хотите, если бы я почесал голову, по общему признанию ... –