Где хранить настройки сайта?

123 4
anton000
На сайте с 10.05.2013
Offline
32
2216

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

PS - Или, как вы это делайте? (опишите пожалуйста, схему работы, ваших настроек). А так же хотелось бы узнать, по какой схеме реализовать настройки для не авторизованных людей?

M2
На сайте с 11.01.2011
Offline
324
#1
anton000:
Скажите такой способ приветствуется с точки зрения оптимизации?

Нет! Храните в сессиях. Только представьте, на сайт зайдёт 1000 пользователей. Будете 1000 раз дёргать из базы настройки?

---------- Добавлено 09.07.2013 в 14:51 ----------

anton000:
по какой схеме реализовать настройки для не авторизованных людей?

Я это вижу так: анонимы есть в отдельной группе. Т.е. группа администраторов, пользователей, забаненных и анонимов. Заходит на сайт пользователь - определяем, если он не залогинен, значит аноним, автоматом присваиваем ему группу анонима, а вместе с ней и все права анонимов.

------------------- Крутые VPS и дедики. Качество по разумной цене (http://cp.inferno.name/view.php?product=1212&gid=1) VPS25OFF - скидка 25% на первый платеж по ссылке выше
siv1987
На сайте с 02.04.2009
Offline
427
#2
anton000:
Здравствуйте, задумал я сегодня реализовать настройки сайта. Подумал, что можно хранить их базе, и при авторизации пользователя, смотреть в базе настройки, и подставлять в php скрипты. Скажите такой способ приветствуется с точки зрения оптимизации?

Да нормально. Системные в любом случае будете хранить в БД, и пользовательские тоже можно.

mark2011:
Только представьте, на сайт зайдёт 1000 пользователей. Будете 1000 раз дёргать из базы настройки?

В этом нет ничего страшного, тем более если хотите сохраните актуальные настройки и назвать это действительно настройками.

anton000:
Скажите такой способ приветствуется с точки зрения оптимизации?

Есть права - чтение, запись и тд.

Есть группы - которые присваиваются нужные права.

anton000
На сайте с 10.05.2013
Offline
32
#3
siv1987:
Да нормально. Системные в любом случае будете хранить в БД, и пользовательские тоже можно.


В этом нет ничего страшного, тем более если хотите сохраните актуальные настройки и назвать это действительно настройками.


Есть права - чтение, запись и тд.
Есть группы - которые присваиваются нужные права.

Группы для пользователей я смогу сделать.

Для анонимных людей понятно.

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

AutoBlogger
На сайте с 05.10.2011
Offline
85
#4

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

>>> Кнопка Бабло <<< (www.cyberseo.net)
Mik Foxi
На сайте с 02.03.2011
Offline
925
#5

Какие именно настройки?

сессионные, типа зашел, выбрал язык и т.п., хранить в мемкеше гденибудь.

если полные настройки юзера, типа логин, пароль, имя и т.п. я люблю хранить в базе.

Антибот защита сайта от накрутки поведенческих, от спама, взлома и поиска xss, от хит и клик ботов, от парсинга и кражи контента, снижение нагрузки на сервер - https://antibot.cloud/ Вам все еще конкуренты генерят отказы?
anton000
На сайте с 10.05.2013
Offline
32
#6
foxi:
Какие именно настройки?
сессионные, типа зашел, выбрал язык и т.п., хранить в мемкеше гденибудь.
если полные настройки юзера, типа логин, пароль, имя и т.п. я люблю хранить в базе.

Если, делать через базу, то это легко. Так же мне понравился вариант хранить через файлы текстовые, то их потом миллионы будет, и что с ними потом делать?

Если только, пользователь не появлялся на сайте, более 3 месяцев, то конец этому файлу.

AutoBlogger
На сайте с 05.10.2011
Offline
85
#7

Угу, можно тупо раз в неделю например чистить те, у которых даты обновления "просрочены". Такие даже загружать предварительно не надо для этого.

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

anton000
На сайте с 10.05.2013
Offline
32
#8
AutoBlogger:
Угу, можно тупо раз в неделю например чистить те, у которых даты обновления "просрочены". Такие даже загружать предварительно не надо для этого.

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

А что лучше не напрягать mySQL или файлы ?

AutoBlogger
На сайте с 05.10.2011
Offline
85
#9

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

O
На сайте с 29.05.2008
Offline
195
#10

Для групп пользователей храню в JSON, для конкретного пользователя в базе данных, при инициализации сессии, объединяю JSON с переопределенными настройками для конкретного пользователя из базы данных и записываю в SESSION (memcached). В cookie храню только идентификатор сессии. Сессию не сбрасываю при закрытии браузера.

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий