继this question之后我正在寻找建立类似的通知系统,我有一个问题(我认为有一个明显的答案,但我更愿意有其他意见):
如果特定帖子产生了一百万个喜欢,然后有人在该帖子中添加评论,我需要通知那些喜欢该帖子的百万人关于添加的评论。实现此目的的唯一方法是将一百万行写入NotificationRead
表,其中NotificationID
和'发送'他们对各种用户?
我无法想象任何其他方法可以让我跟踪谁阅读他们的通知,并且可能每个帖子每个帖子插入一百万行,听起来令人生畏和昂贵。
还有其他办法吗?我使用的是SQL Server 2014,我的应用程序服务器是ColdFusion 2016
答案 0 :(得分:1)
首先,如果您需要推送通知,则无法避免您需要以某种方式通知每个百万用户。但是,您不一定需要在服务器上存储所有通知。
可以做出一些合理的假设:
通过此操作,您可以跳过存储最近帖子的通知:当用户登录时,您可以简单地轮询用户的近期帖子以查看是否有任何新活动。当用户登录时,您正在做额外的工作,但这会随着时间的推移而分散。
对于较旧的帖子,您仍然可以回退为每个用户存储单独的通知,但这不应该经常发生。同样,您可以选择保留每个用户最后N个通知的列表,而不是为每个通知插入新行。这样,如果用户长时间没有登录,您就不会堆积旧通知(用户可能并不关心)。