[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Алгоритм системы тестирования
rammtw
Делаю приложение тестирования на PHP + mysql
Пока алгоритм такой
1) Юзер нажимает начать тест
2) Заполняется таблица, с вопросами для этого юзера и выводятся вопросы по очереди рандомно аяксом
3) Отвеченные вопросы помечаются флагом
4) После каждого ответа, обновляю результаты юзера по данному тесту в другой таблице

Вопросы:
1) Насколько ужасен алгоритм?
2) Как можно его улучшить?
3) Как лучше хранить текущий вопрос в браузере (GET-параметром или в сессии), чтобы текущий вопрос сохранялся после обновления страницы
4) Простейшие советы по безопасности (использование токенов и т.п)

P.S. Делаю на Laravel 4
Игорь_Vasinsky
1. создаётся таблица с вопросами
2. создаётся таблица с критериями вопросов (пол, возраст и тд) - если необходимо
3. выводиться таблица с вопросами
4. проверяются наличие ответа на вопрос (если обязательно)
5. сохраняются ответы с привязкой id вопроса + указывается id юзера

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Valick
Цитата (rammtw @ 19.01.2015 - 15:28)
Как лучше хранить текущий вопрос в браузере (GET-параметром или в сессии), чтобы текущий вопрос сохранялся после обновления страницы

закажите готовый скрипт у программиста

_____________
Стимулятор ~yoomoney - 41001303250491
mvg
Цитата (rammtw @ 19.01.2015 - 15:28)
Вопросы:

Ответы:

Цитата
1) Насколько ужасен алгоритм?


На 4 по 5 бальной шкале.

Цитата
2) Как можно его улучшить?


Убрать запросы аяксом до тех пор пока юзер не ответит на все вопросы!

Цитата
3) Как лучше хранить текущий вопрос в браузере (GET-параметром или в сессии), чтобы текущий вопрос сохранялся после обновления страницы


В сессии или в куки

Цитата
4) Простейшие советы по безопасности (использование токенов и т.п)


Это че?! Банковские транзакции?

Алгоритм:

1) Юзер нажимает начать тест.
2) Из БД заполняется таблица, с вопросами для этого юзера и выводятся вопросы по очереди.
3) Отвеченные вопросы помечаются флагом.
4) После получения всех ответов, обновляю результаты юзера по данному тесту (можно отправлять серилизованный массив аяксом).
5) Результат при надобности заноситься в БД.
Valick
Цитата (mvg @ 19.01.2015 - 16:07)
Из БД заполняется таблица, с вопросами для этого юзера

шо за бред?

_____________
Стимулятор ~yoomoney - 41001303250491
mvg
Цитата (Valick @ 19.01.2015 - 16:27)
Цитата (mvg @ 19.01.2015 - 16:07)
Из БД заполняется таблица, с вопросами для этого юзера

шо за бред?

Из бд перетаскивается в html. Не бред!
Valick
Цитата (mvg @ 19.01.2015 - 16:07)
Из БД заполняется таблица, с вопросами для этого юзера и выводятся вопросы по очереди.

ой не начинай...
просто аккуратнее с чужими мыслями


_____________
Стимулятор ~yoomoney - 41001303250491
rammtw
Спасибо за ответы!
Цитата
Убрать запросы аяксом до тех пор пока юзер не ответит на все вопросы!

Можно узнать зачем?
Цитата
(можно отправлять серилизованный массив аяксом)

В БД хранить длинный сериализованный массив?
mvg
Цитата (Valick @ 19.01.2015 - 21:30)
Цитата (mvg @ 19.01.2015 - 16:07)
Из БД заполняется таблица, с вопросами для этого юзера и выводятся вопросы по очереди.

ой не начинай...
просто аккуратнее с чужими мыслями

Сейчас не понял?


Цитата
Цитата
Убрать запросы аяксом до тех пор пока юзер не ответит на все вопросы!

Можно узнать зачем?


А зачем дергать каждым чихом сервер когда все что надо, сделает javascript, а когда все завершено тогда уже готовый результат запросить у сервера? Не то, чтобы снижать нагрузку и освобождать канал, а то чтобы не загружать (не напрягать) попусту сервер.

Цитата
Цитата
(можно отправлять серилизованный массив аяксом)

В БД хранить длинный сериализованный массив?


Нет. Серилизовал в javascript или там JSON сделал и отправил на сервер. А на сервере разобрали серилизованный массив и нужные данные записали в БД.
rammtw
mvg спасибо.

Еще возник вопрос, у меня может быть 3 типа ответов (input, checkbox, radio). Как лучше их хранить для дальнейшего сравнивания. Думал хранить индексы, но как быть с полем input, ведь в нем может быть строка.

Razzwan
Цитата (rammtw @ 20.01.2015 - 16:47)
mvg спасибо.

Еще возник вопрос, у меня может быть 3 типа ответов (input, checkbox, radio). Как лучше их хранить для дальнейшего сравнивания. Думал хранить индексы, но как быть с полем input, ведь в нем может быть строка.

А в чем проблема? Массив, где каждому id вопроса соответствует ответ в строковом виде. Это может быть индекс, несколько индексов через запятую или строка.

Или это усложнение?

_____________
Youtube канал WebDeveloper->Run()
Сайт для души
Gitter
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.