Сохранение состояния системы - PullRequest
0 голосов
/ 08 октября 2009

Действительно очень цветочное название.

У меня есть веб-приложение PHP в форме веб-мастера. Пользователь может запустить мастер и выбрать параметры, запустить процесс (запросы к БД) и т. Д. Они могут идти вперед и назад и запускать процесс снова и снова.

Я пытаюсь выяснить, как наилучшим образом сохранить состояние того, что пользователи делают / делали, какой процесс они выполняли и т. Д. Так что в основном это прославленный журнал, который я могу открыть позже.

Как сохранить эти состояния или сеансы? Один из вариантов, который рассматривается моим коллегой, - использовать файл XML для каждой сессии и сохранять там все. Моя идея состоит в том, чтобы использовать таблицу базы данных для этого.

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

Используемые в настоящее время технологии

Серверная часть: PHP и MS SQL Server, работающие на Windows Server 2005

FrontEnd: HTML, CSS, JavaScript (JQuery)

Любая помощь будет принята с благодарностью.

EDIT

На этом сайте будет запущен только один / два / три пользователя. Каждый сайт не будет связан каким-либо образом. Система может иметь от 10 до 100 сеансов в месяц.

Ответы [ 2 ]

2 голосов
/ 08 октября 2009

Использование базы данных, вероятно, лучший способ. Просто создайте простую таблицу, которая отслеживает действия по идентификатору сессии. Ничего не индексируйте, поскольку вы хотите, чтобы вставка строк была недорогой операцией (вы можете создать временную таблицу, добавить индексы и запустить отчеты по ней позже).

XML-файлы также могут работать - вы захотите написать отдельный файл для каждого идентификатора сеанса - но анализ, вероятно, будет гораздо проще, если вы сможете использовать набор функций своей базы данных.

0 голосов
/ 08 октября 2009

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

...