2016-11-17 43 views
3

this question继我期待在建设一个类似的通知系统,我有一个问题(其中有一个明显的答案,我想,但我宁愿有一些其他的意见):通知系统中每个通知要插入多少行?

如果某一职位所产生的百万人喜欢,然后有人在该帖子中添加评论,我需要通知那些喜欢该帖子的百万人,以了解添加的评论。是唯一的方法来实现这一点,将一百万行写入一个NotificationRead表中,其中有NotificationID并将它们“发送”给各个用户?

我无法想象任何其他方式,将让我保持谁读的通知与每个通知可能将每个职位一百万行的轨道听起来有点吓人,价格昂贵。

有没有其他方法可以做到这一点?我使用SQL Server 2014和我的应用程序服务器是ColdFusion的2016

回答

1

首先,如果你需要推送通知,没有逃避,你需要以某种方式通知各万个用户的事实。但是,您不一定需要将所有通知存储在服务器上。

有人可能会提出一些合理的假设:

  • 大部分活动将发生在最近的职位(比如,岗位不到一周龄)
  • 大多数用户不会立即通知
回应

使用此功能,您可以跳过存储最近帖子的通知:当用户登录时,您只需轮询用户最近的帖子,看看是否有新的活动。当用户登录时,你正在做额外的工作,但这是随着时间的推移而传播的。

对于旧帖子,你仍然会回落到存储每个用户单独通知,但这不应该经常发生。这里再次,不是为每个通知插入一个新行,您可以选择保留每个用户最近N个通知的列表。这样,如果用户长时间未登录,则不会堆放旧通知(用户可能根本不在意)。