Мой вопрос касается нормализации данных.
INFO
Я пытаюсь составить таблицу результатов теста в базе данных.Информация, которую я хотел бы записать, это test_instance, user_id, test_id, выполнено (дата / время), продолжительность (теста), оценка, неправильные вопросы и проверенные вопросы.
По большей части, я думаю, что яЯ бы организовал информацию согласно ТАБЛИЦЕ 1, но я немного расстроился, пытаясь найти лучший способ записать неправильные или проверенные вопросы.Обратите внимание, что я НЕ хочу объединить все неправильные вопросы в одну запись согласно ТАБЛИЦЕ 2.
Я хочу сделать отдельную запись для каждого неправильно отмеченного вопроса (или пересмотренный вопрос).
ПРИМЕЧАНИЕ: Рассмотренные вопросы - это вопросы, которые в тот или иной момент были помечены неправильно и, следовательно, требуют повторного тестирования.
ТАБЛИЦА 1
-------------------------------------------------------------
| instance | user_id | test_id |completed |duration|score|
-------------------------------------------------------------
| 1 | 23 | 33 | 2JAN2012 | 20m | 75 |
| 2 | 11 | 12 | 10DEC2011| 35m | 100 |
| 3 | 1 | 3 | 3JUL2008 | 1m | 0 |
| 4 | 165 | 213 | 4SEP2010 | 10m | 50 |
-------------------------------------------------------------
ТАБЛИЦА 2
------------------------
| instance ||wrong Q|
------------------------
| 1 || 3,5,7 |
------------------------
В конечном счете, я хотел бы знать, сколько раз пользователь ошибался в определенном вопросе с течением времени.Кроме того, мне нужно отслеживать, из какого теста пришли неправильные вопросы.Это то же самое для рассмотренных вопросов.Кстати, в одном и том же случае вопросы могут быть рассмотрены и неправильны.
Я предложил 2 разных способа представления данных, но мне не нравится ни один из них.
-------------------------------------------------
| instance | Q number | Wrong | Reviewed |
-------------------------------------------------
ИЛИ
---------------------------------------------------
| user_id | test_id | Q number | Wrong | Reviewed |
---------------------------------------------------
Примечание. Неправильная / проверенная категория считает, сколько раз число Q попадает в эту категорию.
МОИ ВОПРОСЫ ОБОБЩЕНЫ
Как эффективно представить неправильные / проверенные вопросы в таблице?Таблица 1 настроена эффективно?
РЕДАКТИРОВАТЬ: Вопросы, на которые были даны неправильные ответы, могут быть использованы для создания новых тестов.Только неправильные вопросы будут использоваться для тестов.Если сгенерированный тест пройден, проверенные вопросы будут помечены как проверенные.Оценка не будет обновлена, так как это будет новый тест, и будет создан новый test_id.
ПРИМЕЧАНИЕ -Возможно повторить старые тесты, но оценка не будет обновлена.Новый экземпляр будет создаваться для каждого пройденного теста.
Что касается сгенерированных тестов, я предполагаю, что это означает, что мне нужно будет включить еще одну таблицу, чтобы отслеживать, из какого теста были получены вопросы.Извините, я не думал об этом до самого конца.
СПАСИБО
Мне было трудно выбрать ответ, так как все дали мне действительно полезныйИнформация.Мой окончательный дизайн будет учитывать все, что вы сказали.Еще раз спасибо.