Задать вопрос
@kirill-93

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

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

Новостей много, просмотренных новостей тоже много. Плох ли такой подход или все ок? База на MySQL.
  • Вопрос задан
  • 116 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Академия Eduson
    FullStack-разработчик: тариф PRO
    14 месяцев
    Далее
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • GB (GeekBrains)
    Профессия Python-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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
"много" - это сколько? Если речь не о миллионах, то пойдет.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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