Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > База для тестирования


Автор: dazy 24.12.2006, 12:22
Стоит задача создать сервис (Веб) для проведения тестирования (людей).
Допустим в базе (MS SQL) есть 100 вопросов или больше, не суть важно, главное что их очень много. Но человеку для тестирования дается только 20 вопросов из базы.

При этом у вопросов есть такие свойства как "сложность", и "тема". Т.е. заранее нельзя сформировать случайную выборку вопросов и подсовывать ее по одному. Выбор вопросов должен осуществляться динамически на основании предыдущих ответов (в рамках своих тем). Т.е. сервис должен понимать, что, ну к примеру, в теме "администрирование  MS SQL" пользователю надо давать более сложные вопросы, а в теме "Т-SQL" более легкие, так как в этой теме он отвечает слабо.

Подскажите, каким образом лучше организовать процедуру выбора вопросов из базы, т.е. какой принцип выборки вопросов можете посоветовать в данном случае?

Или может есть какие-либо статьи по данной тематике?

Заранее спасибо, надеюсь вопрос не сложный.

Автор: Akina 24.12.2006, 22:49
Цитата(dazy @  24.12.2006,  13:22 Найти цитируемый пост)
сервис должен понимать, что, ну к примеру, в теме "администрирование  MS SQL" пользователю надо давать более сложные вопросы, а в теме "Т-SQL" более легкие, так как в этой теме он отвечает слабо.

В данном случае единственное что можно посоветовать - это создание процедуры, которая на основе рейтинга заданных вопросов и результатов ответов на них будет выводить некий индекс понимания сдающим темы, и в зависимости от его (индекса) значения формировать следующую пачку вопросов или выбирать следующий вопрос. Конечно, по каждой теме индекс свой.

С другой стороны задача тебе самому не кажется... как бы это помягче сказать... ну в общем она напоминает "натягивание на троечку" по каждой отдельно взятой теме... в таком случае гораздо проще ограничить снизу выдаваемую оценку и не показывать детальные результаты по каждому отдельному вопросу.

PS. Ну и глупость же...

Автор: dazy 25.12.2006, 13:16
Цитата(Akina @  24.12.2006,  22:49 Найти цитируемый пост)
ну в общем она напоминает "натягивание на троечку"

Вовсе нет, человек может не отвечать и на простые вопросы, тогда получит "1".
А можно назвать и по другому,  "завалить" - не дать получить пятерку. Чем лучше отвечаешь, тем сложнее вопросы smile Но все это зависит от алгоритма подсчета баллов. Но в целом мне кажется такая процедура более правильная. Если человек отвечает только на легкие вопросы - получай тройку, но не выше. С другой стороны нельзя получить пятерку не отвечая на сложные вопросы. Можно конечно поровну задавать и сложных и легких вопросов, но тогда мы сильно увеличиваем шанс получить пятерку человеку чьи знания на 4.  

Но в большей степени меня волнует именно эта функция которая будет выдавать следующий вопрос. Можно ли ее реализовать "силами" MS SQL, чтобы сервер делал всю "грязную" работу? Ведь, придется делать большое кол-во запросов, чтобы выбрать вопрос. Подозреваю что можно, но не знаю с чего подойти. Подскажите где можно какой нить примерчик глянуть, если не по этой, то по смежной теме. 

Автор: LSD 25.12.2006, 14:22
Цитата(dazy @  25.12.2006,  13:16 Найти цитируемый пост)
Но в большей степени меня волнует именно эта функция которая будет выдавать следующий вопрос. Можно ли ее реализовать "силами" MS SQL, чтобы сервер делал всю "грязную" работу? Ведь, придется делать большое кол-во запросов, чтобы выбрать вопрос. Подозреваю что можно, но не знаю с чего подойти. Подскажите где можно какой нить примерчик глянуть, если не по этой, то по смежной теме.

Для начала надо определиться с алгоритмом, затем со структурами данных (какие будут таблицы, и как они взаимосвязанны). И только потом пытаться это реализовать.
Не очень сложный алгоритм можно реализовать на T-SQL, если алгоритм получится сложный можно его реализовать на .NET (только понадобится SQL Server 2005).

Автор: dazy 25.12.2006, 14:35
Выбор пал в пользу .NET + SQL Server 2005, поскольку веб сервис тоже на .NET.
А вот с алгоритмом и структурой, тут сложнее.  Конечно я понимаю, что сначала надо все обдумать (чем, собственно и занимаюсь), а затем реализовывать... Впереди праздники - есть время подумать :)


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)