|
Вопрос # 3 995/ вопрос открыт / |
|
Здравствуйте, эксперты!
Я пишу курсовую, в которой один из разделов - создание тестов. В тестах можно выбрать тип вопроса как соответствие. Тест нужно сохранять в MySQL базе данных на сервере и в файл на компьютере (я это реализовал). Вопрос - как сохранить соответствия в базу данных? Скриншот прилагаю (цветами отмечены связи между полями), во вложении структура ini файла - как я реализовал сохранение в файл.
К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)
 |
Вопрос задал: IlluminatI (статус: 2-ой класс)
Вопрос отправлен: 7 апреля 2010, 22:22
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, IlluminatI!
предлагаю хранить следующим образом. поля таблицы
ключ
номер вопроса
левая фраза
правая фраза.
То есть, храним заведомо верными парами. Если какое то слово слева не имеет пары справа, то просто вставляем пустую строку. Таким образом мы избавляемся от таблицы привязки, в которой очень легко сделать ошибку. Исходный ини файл должен выглядеть где то так
.-----------------------------------------------------.
|kod|qu | left_q | right_q |
.-----------------------------------------------------.
| 1 | 2 | Ионизация газа | Счетчик Гейгера |
| 2 | 2 | Линейчатый спектр | Призменный спектроскоп |
| 3 | 2 | | Дифракционная решетка |
| 4 | 2 | | Просветленный объектив |
.-----------------------------------------------------.
перед выводом конечно нужно все это дело перемешать.
Это всё ещё даст возможность легко добавлять новые соответствия в базу, легко отбирать
например, только для второго вопроса
select * from mytable where qu = 2;
поле kod сразу дает нем номерки для пар, что бы можно было потом восстановить соответствия.
если надо "количество строк в левой части", то это тоже легко посчитать. например для второго вопроса
SELECT count(*) FROM mytable WHERE qu = 2 AND (left_q IS NOT NULL OR left_q <>'');
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 8 апреля 2010, 11:46
Оценка за ответ: 5
Комментарий к оценке: спасибо большое, буду пробовать =)
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|