【发布时间】:2014-07-27 00:56:46
【问题描述】:
我正在实施一个小型社交网站,我正在尝试实施通知。
通知有以下要求
- 所有用户都会在他们关注的用户进行某些活动时收到通知(更改个人资料图片,例如发布帖子、创建帖子、发表评论等...
- 通知的状态为已读或未读(如 facebook 和 stackoverflow)。当用户的一组通知未读时,就像 facebook 一样,用户将继续在其导航栏上看到已读通知图标
这是我想用 MySQL 实现它的方式:
通知表:type_of_event、event_id、message
Notification_read 表:user_id、notification_id、read
- 每当用户执行触发发送通知的事件时
对于所有关注者,该通知存储在
Notification表中 - 将为新创建的通知填写
Notification_read表,其中包含新通知的 ID 和应收到通知的每个用户的 ID(通知创建者的关注者) - 每当用户收到通知并阅读它们时,通知将被标记为
read
这个解决方案对我来说似乎效率很低,因为每次发生通知时,通知都会多次写入notification_read 表中(取决于用户拥有多少关注者)
谁能告诉我这个问题是否有更好的解决方案
【问题讨论】:
标签: ruby-on-rails facebook notifications social-networking