Как не показывать дважды один и тот же материал?

Добрый вечер, подскажите как правильно реализовать следующий механизм:
Имеется база данных: user_id, statia_id
в ней мы храним id пользователя и номер статьи, которую он просмотрел.

Как скрыть те статьи, которые пользователь уже смотрел?

Были мысли перебирать номера статей и если такой уже записан, то пропускаем.
Есть минусы, к примеру, если пользователем просмотрено более 1000 статей.

Еще была мысль выбрать все номера в массив...тоже не вариант

Вопрос, как правильнее и менее ресурсоемко реализовать данную задачку?
Спасибо.
  • Вопрос задан
  • 201 просмотр
Решения вопроса 1
@alexis78i Автор вопроса
Задачу решил с помощью join left в запросе, в таблице хранится ид статьи и ид пользователя, тем самым, два раза одно и тоже показываться не будет.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Stopy
Можно писать в долгосрочную Куку или сессию массив просмотренных статей
Ответ написан
@vista1x
А почему нельзя выбрать из базы только те статьи, которые юзер не смотрел?
Ответ написан
Ваш ответ на вопрос

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

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