Сессия или запрос к базе?

aaachilov

Новичок
Пиветствую!
Ребята посоветуйте чайнику как будет практичнее и правильне. Запихать некоторую переменную в сессию или сделать запрос к базе. например количество комментариев я сделал так что для этого задаю переменную в сессии так как запрос на выборку данных профиля все равно происходит при авторизации и потом при добалении комментария $_SESSION['com_num'] += 1; и тоже самое с добавленными материалами и т.д. или лучше записать в сессию только id пользователя и в нужном месте всегда выбирать значения требуемых переменных?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
aaachilov
Внимание, вопрос.
$_SESSION['com_num'] модераторы "почистили" комментарии.
Каким образом значение должно обновиться у пользователя?

Хранить данные следует там, где их следует хранить
 

aaachilov

Новичок
Да Вы правы))) Спасибо!
Всё пытаюсь на запросах к базе съэкономить)))
 

aaachilov

Новичок
А в общем если стоит выбор между сессией и запросом что лучше выбрать?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
1/ Выборка из бд по праймари кею - это копеечная операция.
2/ Проблемы нужно решать по мере их поступления.
3/ Беспорно можно некоторые данные хранить в сессии. Если тебе это подходит.
4/ Только я не вижу в этом смысла, если к примеру, ты все равно будет необходимость получать профиль пользователя по ай-ди
 

SiZE

Новичок
Сессия должна работать по принципу "живи быстро, умри молодым". Т.е. хранить временные данные и по возможности более статичные: допустим покупатель набирает товары в корзину или список последних посещенных им страниц. Но не стоит хранить в сессии число посетителей за день и тд. Вобщем по месту смотреть надо.

Еще чтобы сэкономить данные можно закешировать. Допустим создать таблицу cache и сделать поля id, key, value. Написать класс который будет обновлять данные и брать из этой таблицы.
 

С.

Продвинутый новичок
НЕ ЭКОНОМЬ НИ НА ЧЕМ, пока нет проблемы и все работает.
= Оставь тарелку с говном на десерт.

При разработке надо отдавать себе отчет в весе своего кода. Я не призываю экономить на спичках, но оставлаять все на авось типа сервер железный, пусть работает -- тоже чревато. Если у нас сказжем есть две функции: count() и CountRows(). Одна считает элементы в массиве, а другае строки в базе (по условию). Первую можно совать спокойно, хоть в каждую строку кода. Но надо быть полным обормотом, чтобы поступать такаже со второй, не использюя присвоение переменной..
 

AmdY

Пью пиво
Команда форума
С.
а в чём проблема всунуть затем кеш во вторую или может быть вариант с тем, что количество записей дейтвительно изменилось и что тогда? Простые решиня зачастую оказываются не такими простыми, когда появляется "если". Но вот грузить этим новичка нужно очень осторожно, ему сейчас полезно просто сделать, а затем пройти путь от тормознутого кода к оптимизации и профайлингу.
 

С.

Продвинутый новичок
Сунуть кеш не проблема. Проблема найти, куда совать (= где тормозит). Объект же не научен мыслить такими категориями, ему позволили лепить абы как.
может быть вариант с тем, что количество записей дейтвительно изменилось и что тогда?
Вот не надо, а. Если между двумя строками кода изменилось количество записей и это критично, то это совершенно другой подход, трансакции, condition racing, локи и пр. Тут ты будешь уже из кожи лезть, чтоб все аккуратно было, а не абы как.
 
Сверху