2016-11-17 68 views
3

this question繼我期待在建設一個類似的通知系統,我有一個問題(其中有一個明顯的答案,我想,但我寧願有一些其他的意見):通知系統中每個通知要插入多少行?

如果某一職位所產生的百萬人喜歡,然後有人在該帖子中添加評論,我需要通知那些喜歡該帖子的百萬人,以瞭解添加的評論。是唯一的方法來實現這一點,將一百萬行寫入一個NotificationRead表中,其中有NotificationID並將它們「發送」給各個用戶?

我無法想象任何其他方式,將讓我保持誰讀的通知與每個通知可能將每個職位一百萬行的軌道聽起來有點嚇人,價格昂貴。

有沒有其他方法可以做到這一點?我使用SQL Server 2014和我的應用程序服務器是ColdFusion的2016

回答

1

首先,如果你需要推送通知,沒有逃避,你需要以某種方式通知各萬個用戶的事實。但是,您不一定需要將所有通知存儲在服務器上。

有人可能會提出一些合理的假設:

  • 大部分活動將發生在最近的職位(比如,崗位不到一週齡)
  • 大多數用戶不會立即通知
迴應

使用此功能,您可以跳過存儲最近帖子的通知:當用戶登錄時,您只需輪詢用戶最近的帖子,看看是否有新的活動。當用戶登錄時,你正在做額外的工作,但這是隨着時間的推移而傳播的。

對於舊帖子,你仍然會回落到存儲每個用戶單獨通知,但這不應該經常發生。這裏再次,不是爲每個通知插入一個新行,您可以選擇保留每個用戶最近N個通知的列表。這樣,如果用戶長時間未登錄,則不會堆放舊通知(用戶可能根本不在意)。