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