Скажем, на сайте обмена ссылками люди могут делиться ссылками и оставлять комментарии. Пользователи, переходящие по ссылке, должны быть уведомлены о размещении там комментариев. Пользователи, следующие за категорией, должны быть уведомлены, когда ссылки делятся в этой категории. Как лучше всего хранить эти уведомления?
Я мог бы хранить их по отдельности, в этом случае их выбор был бы простым, но каждый раз, когда публикуется ссылка, мне приходилось добавлять уведомление для каждого, скажем, 10 000 человек, следующих за этой категорией.
Я также мог бы просто рассчитывать уведомления каждый раз, и в этом случае я бы подсчитывал количество новых комментариев с момента последнего входа пользователя в систему и отображал их. Однако тогда я не смогу сохранить старые уведомления.
Какие у меня варианты?
Хорошо, вот моя схема базы данных:
comments
- id
- user
- link
- content
links
- id
- user
- content
subscriptions
- id
- user
- link
Каждый раз, когда по ссылке делается новый комментарий, все пользователи, подписанные на эту ссылку, должны иметь «уведомление», которое они получат при следующем входе в систему.