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

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

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

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

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

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

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

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