Структура БД
Имеются таблицы:
1) Тестируемые(Код, ФИО)
2) Вопросы(Код, Наименование)
3) ВариантыОтветов(Код, Вопросы_Код, Наименование)
4) ОтветыТестируемых(Код, Тестируемые_Код, Вопросы_Код, ВариантыОтветов_Код)
5) Ключ(Код, НомерСтроки, НомерСтолбца, Текст)
Поясню:
В данном тесте всего два вопроса, в каждом по 10 вариантов ответа.
Результат тестирования определяется по ключу. В книге ключ отображен в виде таблицы, где значения полей - ответ на первый вопрос, значения записей - ответ на второй вопрос. Результат тестирования - пересечение соответствующей строки и столбца.
Вопрос собственно состоит в том, что меня не устраивает сама структура БД.
К примеру, поле Вопросы_Код в таблице ОтветыТестируемых кажется избыточным, т.к. по полю Вопросы_Код таблицы ВариантыОтветов и так можно определить номер вопроса. С другой стороны, нас интересует именно то, что первый вопрос представляет собой строку, а второй столбец в таблице Ключ.
Вообщем я совсем запутался с этим тестом.
Прошу помощи в организации корректной и уместной структуры БД.
Вот тут не понял, чушь какая-то. Если там действительно таблица, в БД их должно быть две или даже 3: столбцы, строки и пересечения. Иначе модель получается нереляционной.
2)В ВариантыОтветов добавил поле Правильность и по умолчанию ставил бы значение 0.
Чо-то не понял..
Столбцы и строки расшифрованы в таблице "ВариантыОтветов". Предлагаешь дублирование данных?!!
Приведу пример:
строка\столбец---1---2---3
------1------------а---б---в
------2------------г---д----е
------3------------ж--з----и
Два вопроса по три варианта ответа в каждом. Человек ответил на первый вопрос 2, а на второй 3. Первый вопрос - строка, второй - столбец. Получаем на выходе 'е'.
1)Таблицу Ключ я бы вообще убил.
А это еще зачем?!! А откуда я должен брать результаты?? В код 'вшивать'? :D
2)В ВариантыОтветов добавил поле Правильность и по умолчанию ставил бы значение 0.
Правильность чего?!! Таблица ВариантыОтветов - исходные 'неприкосновенные' данные.
Из таблицы ВариантыОтветов конечно. У тебя в этой таблице будет задаваться соответствие коду вопроса нескольких вариантов ответов. Один из вариантов будет верным.
С этой таблицей будешь сверяться при подсчете результатов тестирования для того чтобы определить правильно ответили на вопрос или нет. Поэтому уродскую по своей структуре таблицу Ключ можно забыть как страшный сон. :D
С этой таблицей будешь сверяться при подсчете результатов тестирования для того чтобы определить правильно ответили на вопрос или нет. Поэтому уродскую по своей структуре таблицу Ключ можно забыть как страшный сон. :D
Либо ты невнимательно прочитал мой вопрос, либо ты вообще не шаришь в теории БД.
Ну как бы тебе объяснить. Подобную задачу я уже решал и структуру БД для своей задачи создавал и программа на ее основе работает. Не хочеш слушать - мне вобщем-то пофиг хотя непонятно зачем было задавать вопрос.
Ну как бы тебе объяснить. Подобную задачу я уже решал и структуру БД для своей задачи создавал и программа на ее основе работает.
:) Работающая программа еще ничего не означает. У меня тоже все работает. И тем не менее я не доволен структурой.
Не хочеш слушать - мне вобщем-то пофиг хотя непонятно зачем было задавать вопрос.
Вопрос был задан, чтобы услышать ответ. Твой пост не является ответом, т.к. :
У тебя в этой таблице будет задаваться соответствие коду вопроса нескольких вариантов ответов.
Если ты прочитал мой первый пост - так и происходит.
Один из вариантов будет верным.
В данном тесте нет верных или неверных ответов. Для каждой пары ответов существует свой результат-пересечение в ключе.
С этой таблицей будешь сверяться при подсчете результатов тестирования для того чтобы определить правильно ответили на вопрос или нет.
То же самое + никакого подсчета результатов не происходит.
Поэтому уродскую по своей структуре таблицу Ключ можно забыть как страшный сон.
Ну про это вообще молчу!.. Высасывать из пальца какие-то ненужные поля и потом забывать то, что на самом деле необходимо - не лучший подход!!
Я же не против другого подхода в организации БД. Просто твоя структура не подходит для решаемой задачи. Опять же, видимо ты невнимательно прочитал условия задачи.