событий (изначально она одинаковая для всех пользователей), выводим их по одному от самых свежих к самым старым (DESC). Просмотренные скрываем навсегда только для конктреного пользователя, конечно.
Если использовать старую добрую MySQL, то прихоидит в голову к таблице с событиями добавить таблицу со связями между id пользователя и id просмотренно записи. После чего выбирать нужные для показа записи запросом:
SELECT t1.id, t1.values FROM t1 WHERE t2.user_id = xxx AND t1.id NOT IN (SELECT t2.id FROM t2) ORDER BY t1.id DESC LIMIT 1
Сомнения вызывает то, что 10 тыс пользователей, просмотрев по 10 тыс записей уже нагенерят 100 млн строк в t2... Будет ли это проблемой и на каком количестве?
Можно ли как-то иначе все это реализовать, чтобы использовать NoSQL (Firebase от Гугла) или из-за отсутствия аналогов NOT IN и "!=" реляционная БД будет лучше?
Нененене.
NoSQL как всегда тут ни при чём вообще.
Обсуждают сегодня