Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Конфиг пользователей. Где хранить ?
 
 автор: vorobey   (14.12.2010 в 18:30)   письмо автору
 
 

Всем вечер добрый!

Система регистрации построена так, что конфигурация пользователя(add_comment => 1, add_post => 0, итп) находится в базе данных.
При переходах по страницам, этот конфиг необходимо считывать из базы.
Получается не малое количество запросов к базе.
Как сократить количество запросов ? Я вот думаючто может временно записывать в текстовый файл или в сессию
- это вообще безопасно ? и как в принципе поступают в таких случаях ?

  Ответить  
 
 автор: neadekvat   (14.12.2010 в 19:37)   письмо автору
 
   для: vorobey   (14.12.2010 в 18:30)
 

Записывайте серилизованный массив с настройками - один дополнительный запрос на страницу.

  Ответить  
 
 автор: Trianon   (14.12.2010 в 19:39)   письмо автору
 
   для: neadekvat   (14.12.2010 в 19:37)
 

Э?

  Ответить  
 
 автор: neadekvat   (14.12.2010 в 20:20)   письмо автору
 
   для: Trianon   (14.12.2010 в 19:39)
 

А что?

  Ответить  
 
 автор: Trianon   (14.12.2010 в 21:28)   письмо автору
 
   для: neadekvat   (14.12.2010 в 20:20)
 

нормальная форма прахом пошла.

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

  Ответить  
 
 автор: neadekvat   (14.12.2010 в 22:00)   письмо автору
 
   для: Trianon   (14.12.2010 в 21:28)
 

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

  Ответить  
 
 автор: Trianon   (14.12.2010 в 23:16)   письмо автору
 
   для: neadekvat   (14.12.2010 в 22:00)
 

Очевидно, в некоторых случаях настройки пользователя может менять не[только] сам пользователь, а администратор.

Последнему периодически будет хотеться узнать, к примеру, каким пользователям присуща та или иная опция настройки. :)

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

  Ответить  
 
 автор: vorobey   (14.12.2010 в 19:53)   письмо автору
 
   для: neadekvat   (14.12.2010 в 19:37)
 

Вы имеете ввиду записывать сериализованный массив в одну "ячеку" базы данных и делать к ней запрос ? Тогда почему именно сериализованный? можно и обычный массив разобрать-собрать explode-implode.

  Ответить  
 
 автор: neadekvat   (14.12.2010 в 20:20)   письмо автору
 
   для: vorobey   (14.12.2010 в 19:53)
 

Можно)

  Ответить  
 
 автор: vorobey   (14.12.2010 в 21:03)   письмо автору
 
   для: neadekvat   (14.12.2010 в 20:20)
 

:) и ничего не изменится как был один запрос так и останется.
Моя цель:
_ при авторизации идет запрос в базу(в любом случае)
_ авторизованный "ходит" по страницам и запроса не происходит - конфиг читается не из базы , а из ?? - Это вообще возможно или так не делают?

  Ответить  
 
 автор: Trianon   (14.12.2010 в 21:25)   письмо автору
 
   для: vorobey   (14.12.2010 в 21:03)
 

И сколько времени он будет так ходить авторизованным?
И как его выкинуть случчего?

  Ответить  
 
 автор: vorobey   (14.12.2010 в 21:37)   письмо автору
 
   для: Trianon   (14.12.2010 в 21:25)
 

Куки на 5 минут.

  Ответить  
 
 автор: Trianon   (14.12.2010 в 21:43)   письмо автору
 
   для: vorobey   (14.12.2010 в 21:37)
 

Так он, заходя раз в 4.59 минуты, вечно сидеть будет.

  Ответить  
 
 автор: vorobey   (14.12.2010 в 21:51)   письмо автору
 
   для: Trianon   (14.12.2010 в 21:43)
 

Да так и есть. А разве не так на этом форуме? я сижу уже второй час.

  Ответить  
 
 автор: Trianon   (14.12.2010 в 23:13)   письмо автору
 
   для: vorobey   (14.12.2010 в 21:51)
 

Сидите.
Но достаточно в БД поменять пароль - и Вы тут же вылетите. При следующем же обновлении страницы.

В Вашем случае БД никак не связана с сеансом.

  Ответить  
 
 автор: neadekvat   (14.12.2010 в 21:28)   письмо автору
 
   для: vorobey   (14.12.2010 в 21:03)
 

По теме сказать не могу. Но так, к слову - при разработке одного сайта я подключал форум phpbb третьей версии.
И чтобы самому не таскать лишнюю информацию из базы, решил посмотреть, что же находится в объекте класса user (который в свою очередь является потомком session).
print_r($user) выдало страницу в 154 кб - это примерно 25 моих экранов.
Стоит ли говорить, сколько там всяких запросов, цепляний файлов и т.д.
Так что один запрос на одного пользователя на одну страницу - это, по-моему, не так уж и страшно.

  Ответить  
 
 автор: vorobey   (14.12.2010 в 21:38)   письмо автору
 
   для: neadekvat   (14.12.2010 в 21:28)
 

Ну, тогда оставлю как есть и не буду изгаляться.

  Ответить  
 
 автор: ride   (14.12.2010 в 22:29)   письмо автору
 
   для: vorobey   (14.12.2010 в 18:30)
 

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

  Ответить  
 
 автор: vorobey   (14.12.2010 в 23:25)   письмо автору
 
   для: ride   (14.12.2010 в 22:29)
 

уже понял. спасибо всем.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования