Веб-приложение Yesod: где хранить пользовательские настройки
Я создаю веб-приложение (Yesod + sqlite), где пользователи в основном выполняют кучу полнотекстового поиска. Пользователи могут устанавливать свои предпочтения, такие как длина статей, количество совпадений ключевых слов и т. Д.
Каков рекомендуемый способ хранения пользовательских настроек и настроек? Конечно, я могу сохранить эти настройки в базе данных. Таким образом, при каждом подключении пользователь извлекает настройки из базы данных и сохраняет их в памяти?
1 ответ
Да, сохраните предпочтения постоянных пользователей в базе данных. Таким образом, настройки следуют за пользователем, независимо от агента пользователя (устройства и / или браузера), который она использует для доступа к вашему веб-сайту. Более того, администратор базы данных может выполнять резервное копирование баз данных в автономном режиме и легко копировать их или делиться ими с новыми серверами. Настройки в базе данных также могут быть легко агрегированы для статистики, в которой предпочтения не используются, а какие являются общими и какие предпочтения коррелируют.
Хранение их в другом месте, будь то скрытый плоский файл на веб-сервере или в файле cookie HTTP, будет уместно только для временных параметров, которые впоследствии не будут представлять статистический или исторический интерес.