2016-03-02 85 views
2

我想弄清楚一個交互式通知系統。我的應用程序是使用Laravel構建的,我目前使用Pusher將某些事件廣播給客戶端。我將在通知系統中使用相同的過程,但是,當用戶彈出通知時,我想要一些樣式,除非用戶單擊或懸停在通知上。Laravel交互式通知

我知道我可以用Javascript做到這一點,但是如果用戶沒有對該通知採取行動,退出並重新登錄,我會希望這種樣式保持完整,直到用戶與該通知進行交互爲止。

是否最好創建通知控制器,並且每當用戶與該通知進行交互時,數據庫記錄是針對該特定用戶更新的?這似乎很多,因爲通知將公開並廣播給幾乎所有用戶......併爲每個用戶創建一個數據庫記錄......這可能會創建一個TON記錄。

任何幫助表示讚賞。謝謝!

回答

1

不知道這將是一個最好的方式,但我會設置:

  1. 通知模型
  2. 與用戶的關係。 (用戶 - 通知 - 多對多)
  3. 中級表保持通知&用戶關係。

通知模型可以有以下數據庫字段來保留您的通知數據。

  • ID
  • 標題
  • 消息
  • 狀態

和你中間表可能有(notification_user表)

  • notification_id
  • user_id說明
  • read_on(時間戳)
  • is_archived(boolen)

當用戶閱讀通知您可以更新read_on時間戳的,所以你不要告訴他們所有的時間。你也可以爲他們提供一個歸檔等選項,它應該在你的數據透視表中。

希望這會有所幫助。

+0

這與我如何考慮設置它相似。如果通知發送給1,000位用戶,從而創建1,000條數據庫記錄,您是否會預見到問題?似乎這張桌子只是巨大的。 –

+0

如果您使用的是MYSQL,並且您的notification_id是無符號整數,則最大值爲4,294,967,295。如果是無符號bigint,則最大值爲18,446,744,073,709,551,615。如果你接近這些數字比我想你可以開始擔心:) –

+0

好點,謝謝! –