@kirill-93

Как лучше фильтровать данные?

Есть лента новостей, каждый день добавляются новые. Человек заходит и читает, мы сохраняем в базу прочитанные им новости.
Вопрос: как в таком случае эффективнее и правильнее фильтровать новости по "прочитана/не прочитана". Сейчас каждая прочитанная новость записывается в базу, а непрочитанные выбираются примерно так:
select * from news where id not in (select id from viewed)

Новостей много, просмотренных новостей тоже много. Плох ли такой подход или все ок? База на MySQL.
  • Вопрос задан
  • 116 просмотров
Пригласить эксперта
Ответы на вопрос 2
@vilgeforce
Раздолбай и программист
UPDATE TABLE usersSettings SET lastViewed=NOW() WHERE userID = ...;
SELECT * FROM news WHERE newsTime > (SELECT lastViewed FROM usersSettings WHERE userID = ...) ;
Можно как-то так.
Ответ написан
Immortal_pony
@Immortal_pony Куратор тега MySQL
"много" - это сколько? Если речь не о миллионах, то пойдет.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы