Как уже писали выше, можете использовать NoSql. И если у вас есть база статей, база пользователей, просто добавляете коллекцию user_id -> [items_id]. При создании статьи, ее идентификатор помещается всем пользователям в данную коллекцию и считается, что пользователь ее не читал. Клиент заходит на сайт, вы делаете выборку статей из колекции, которые не читал пользователь, и помечаете выбранные статьи как новые. Если пользователь зашел на нее, то вы просто удаляете ее из списка.
Можете сделать систему бейджей - тегов (тематика статей) и присваивать ее пользователям, которые подписались на определенный вид тематики. И в дальнейшем создавать статьи с определенными бейджами и добавлять ее только тем пользователям, у которых есть один из бейджей.