Как организовать и хранить конфиг по каждому пользователю, чтобы что-то делать один или несколько раз?

Необходимо при авторизации пользователя, показывать тот функционал, который он еще не видел, один или несколько раз.
К примеру: сверстали новое модальное окно с новым функционалом, и нужно показать его всем, далее при закрытии окна или обновлении страницы больше не показывать его.
Или что либо либо еще добавилось: какой нибудь блок, который когда человек ознакомился нужно больше не показывать.

Как хранить состояния по каждому пункту. Был вариант делать поля вида: user_id, par1, par2. Был вариант хранить по каждому игроку объект в виде json {par1: false, par2: true}. Но как при добавлении функционала обновить эти объекты по каждому пользователю? Можно через запрос всем добавить объект со свойством par3 и новый функционал будет добавлен, но тогда все будет заново просматриваться.
  • Вопрос задан
  • 344 просмотра
Пригласить эксперта
Ответы на вопрос 6
Adamos
@Adamos
Речь ведь про браузерку? Так храните в куке, какие новинки юзеру уже показаны из появившихся за последние, скажем, три месяца. Просто списком ID в одну строку. Зачем это в базе-то?
Ответ написан
FedoroBu4Stalk
@FedoroBu4Stalk
Проще будет в куки.
Ответ написан
Комментировать
dmitriylanets
@dmitriylanets
веб-разработчик
я делал через вариант {par1: false, par2: true}

Я конечно могу через запрос всем добавить другой объект со свойством par3 и новый функционал будет добавлен

- не обязательно обновлять, если при получении нет свойства например view_modal у объекта значит просто он считается не просмотренный, при просмотре и подтверждении занесите свойство view_modal=true
Ответ написан
Комментировать
@cicatrix
было бы большой ошибкой думать
Уже делал что-то похожее. Если показывать всегда по порядку, то вовсе не обязательно хранить все со всеми.
Если все новые фичи имеют ID и показываются по порядку, то хранить с каждым пользователем достаточно ID последней просмотренной. И никакого разрастания.
Есть и ограничение, разумеется, показывать можно только по мере возрастания ID, но зато хранить надо намного меньше всего.
Ответ написан
Комментировать
FanatPHP
@FanatPHP
Чебуратор тега РНР
Как грамотно хранить такие данные и остаться масштабируемым?

поля вида: user_id, par, value

проверить, показывали ли юзеру что-то - 1 запрос
пометить что показывали - 1 запрос
Ответ написан
Alex_Wells
@Alex_Wells
PHP/Kotlin
JSON поле. И заполнять нужно не те, которых он НЕ видел, а те, которые он видел. Увидел - добавил ключ. Можно даже json массив.

Не надо никаких отдельных таблиц, это полный бред.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы