- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Юзер зашёл на сайт, ввёл логин/пароль, получил сессию в которой есть array('employeeId', 'companyId','firstName', 'lastName', 'sex', 'lang', 'email', 'role')
Админ тоже зашёл на сайт и изменил у этого сотрудника lastName.
Какбы у сотрудника теперь должен быть измененные lastName, но он изменится только после повторного входа на сайт.. а как можно изменить сразу? Постоянно проверять нету ли каких-нибудь изменений.. и если есть, то обновлять сессию пользователя?
если сессии хранятся в бд, добавь колонку changed
нет, в бд не хранятся, походу в файлах на сервере.. так как использую стандартную функцию php
тогда вы сами ответили на свой вопрос.
В сессии хранить только идентификатор пользователя, все данные брать из кэша, кэш инвалидировать при изменении данных пользователя. Кэш желательно размещать в памяти.
В сессии хранить только идентификатор пользователя, все данные брать из кэша, кэш инвалидировать при изменении данных пользователя. Кэш желательно размещать в памяти.
Админ че сутки напролет собирается изменять данные юзеров когда они активны?
Как по мне достаточно в сессии хранить АйДишник юзверя и каждый раз(при открытии новой страницы) по нему дергать БД.
Я не сторонник всякой псевдо-экономики, где девелоперы выкраивают каждый байт трафика/памяти. ДА согласен что есть случае где это выкраивание необходимо, но думаю в данном случае 1 СЕЛЕКТ ФРОМ `юзерс` WHERE `id`=$_SESSION['user_id'] ни че не решит в плане умирания БД. Если еще и на АйДи будет стоять индекс, то ваще красота:)
Милованов Ю.С, что-то не понял про айдишку..)
айдишка не изменяется, или предлагаете брать данные по id и потом сравнить все поля бд с данными в сессии и если есть нестыковки перезаписать сессию..?
Милованов Ю.С, ага, а потом все эти ынтерпрайзные сайты открываются по полминуты :)
А ещё есть ограничения всяких хостингов на количество обращений к БД, а при таком решении одна страница - один запрос. Но всё зависит от ситуации, конечно, и от наличия свободного времени.
Милованов Ю.С, что-то не понял про айдишку..)
айдишка не изменяется, или предлагаете брать данные по id и потом сравнить все поля бд с данными в сессии и если есть нестыковки перезаписать сессию..?
Поле ID в таблице ЮЗЕРС постоянно. Когда юзверь проходит процедуру авторизации мы ему лепим в сессию $_SESSION['user_id']={ID из базы}.
Теперь каждый раз при смене юзером страницы дергаем таблицу юзерс и выбираем все данные по АйДи, который хранится в сессии.
Милованов Ю.С, ага, а потом все эти ынтерпрайзные сайты открываются по полминуты
Запрос по pk (подключение к базе, ведь уже установлено), да ещё и кэшированный (на уровне MySQL) может отрабатывать быстрее, чем чтение, например, из файлового кэша. А при изменении информации в базе инвалидация кэша ложится на MySQL.
Про оптимизацию хранения этой инфы о пользователе, например, при помощи key-value хранилища в памяти (а будет ли быстрее?) имеет смысл говорить, когда текущих ресурсов будет "почти" не хватать.
нет, в бд не хранятся, походу в файлах на сервере.. так как использую стандартную функцию php
1. "Стандартные" сессии не знают о существовании друг друга...
2. "Стандартные" (session_start() итд) функции могут "сохранять" инфу в базу или в любое другое хранилище - см session_set_save_handler и по соседству
Милованов Ю.С, аа, так вот. А не будет ли это слишком напряжно приложению каждый раз с базы брать и в сессию пихать?