"заполнить бланки" - PullRequest
       1

"заполнить бланки"

0 голосов
/ 24 октября 2010

Я пытаюсь сделать простой экзамен типа «заполнить пробелы» в django и хотел бы знать, каков наилучший способ разработки базы данных.

Пример: «9 - это сумма 4 и 5, или 3 и 6».

Во время экзамена вышеприведенное предложение будет выглядеть как «__ - это сумма __ и _ или _ и __. "

Очевидно, что на этот вопрос существует неограниченное количество ответов, но предположим, что приведенные выше числа являются единственными ответами.Но выгода в том, что вы можете поменять местами 4 и 5 или 3 и 6 и получить правильный ответ.Кроме того, количество пропусков неизвестно, поэтому может быть 1 или более.

1 Ответ

0 голосов
/ 24 октября 2010

Я бы пошел с чем-то вроде.Сначала определите таблицу вопросов:

Question
--------------------------
Id     Text
1      9 is the sum of 4 and 5, or 3 and 6
...

Затем сохраните положение скрытых подстрок, давайте назовем их полями, в другой таблице:

QuestionField
--------------------------
Id  QuestionId  StartsAt    EndsAt      Set
1   1           0           1           1
2   1           16          17          2
3   1           22          23          2  # NOTE: Is in the same set as QuestionField #2
...

Эта таблица позволяет получить фактическое значениеполя путем запроса таблицы вопросов (например, первая запись относится к значению «9» в первом вопросе).

Столбец «Набор» содержит идентификатор «набора», в котором находится это поле,где поля в одном наборе могут быть заменены друг другом.Заполняя его, вы должны убедиться, что все вопросы, которые можно заменить друг на друга, находятся в одном наборе.Фактический номер набора не имеет значения, пока он уникален.Но имеет смысл иметь его равным идентификатору одного из элементов набора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...