继从这个问题 https://stackoverflow.com/questions/9735578/building-a-notification-system我正在考虑构建一个类似的通知系统,并且我有一个问题(我认为它有一个明显的答案,但我更愿意有一些其他意见):
如果某个特定帖子获得了一百万个赞,然后有人向该帖子添加了评论,我需要通知那些喜欢该帖子的百万人有关添加的评论。实现这一目标的唯一方法是将一百万行写入NotificationRead
表有NotificationID
并将它们“发送”给各个用户?
我无法想象任何其他方法可以让我跟踪谁阅读了他们的通知,并且可能在每个通知的每个帖子中插入一百万行,这听起来令人畏惧且昂贵。
还有其他方法吗?我正在使用 SQL Server 2014,我的应用程序服务器是 ColdFusion 2016
首先,如果您需要推送通知,则不可避免的事实是您需要以某种方式通知数百万用户中的每一个。但是,您不一定需要将所有通知存储在服务器上。
人们可以做出一些合理的假设:
- 大多数活动将发生在最近的帖子上(例如,发布时间不到一周的帖子)
- 大多数用户不会立即回复通知
这样,您就可以跳过存储最近帖子的通知:当用户登录时,您可以简单地轮询用户最近的帖子以查看是否有任何新活动。当用户登录时,您正在做额外的工作,但这会随着时间的推移而分散。
对于较旧的帖子,您仍然会回退到为每个用户存储单独的通知,但这不应该经常发生。同样,您可以选择保留每个用户最后 N 个通知的列表,而不是为每个通知插入新行。这样,如果用户长时间没有登录,您就不会堆积旧的通知(用户可能根本不关心)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)