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

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

Как хранить состояния по каждому пункту. Был вариант делать поля вида: 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 массив.

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽