@Fly3110
web developer

Как правильно хранить факт прочтения новости пользователем?

Всем привет.

Дано: Сайт, Пользователи, Новости :)

У каждой новости пользователь должен нажать кнопку/поставить галочку, что он эту новость прочел. Какое может быть решение, кроме очевидного, хранить пару ID пользователя + ID новости?

Решение не очень нравится тем, что при каждом открытии страницы надо будет делать поиск по таблице новостей и по этой таблице, чтобы найти новости, которые пользователь еще не читал.

Есть и другой вариант, делать таблицу не "прочтенных новостей", а, наоборот, новых новостей. Тогда, при каждом добавлении новости, надо будет записывать в эту таблицу все пользователей системы, чтобы потом, когда пользователь прочтет новость, удалять запись.

Может быть есть гораздо более простое и логичное решение и я его не вижу? :)

Спасибо.
  • Вопрос задан
  • 271 просмотр
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Веб-разработка
Учим yii: https://youtu.be/-WRMlGHLgRg
Как вариант, поле i_read в пользователе. Там в виде json хранить список id прочитанных. Соответственно при выборке из новостей исключать эти id. Но есть опасения, что будет превышен лимит поля.
На мой взгляд оптимальный вариант, как раз тот, который Вас почему-то смущает. А именно отдельная таблица user_id | news_id
Ответ написан
Ваш ответ на вопрос

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

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