2012-03-23 33 views
2

我在SO上看到很多關於用戶通知系統的各種帖子(例如,用戶在圖片上發表評論,發送消息等等)。對於使用PHP/MySQL的用戶的系統通知

我很好奇如何把網站管理員生成的「系統通知」放在一起。這些可以是被顯示給登錄時每用戶消息,如:

1)提醒系統維護/停機 2)的即將發生的變化 3)需要被顯示的系統 - 的任何其他消息通知寬

什麼是一個很好的方法來做到這一點?我希望這些消息能夠顯示給所有用戶,用戶將有機會「隱藏」(因此將其標記爲「讀取」),以便稍後登錄時不會再顯示。這是應該在數據庫端,使用會話還是兩者都完成?

任何想法如何開始將不勝感激!

+0

向用戶和讀取列(tinyint 0或1)添加一個包含m:n的通知表,如果讀取爲0,則將其顯示在您的模板中,並在點擊時將該行更新爲1。我想我不會解開這個問題! – Sgoettschkes 2012-03-23 15:36:15

回答

2

我會有一個包含msgID,消息,creationTime,expirationTime的通知表。然後是一個用戶表,例如userNotifications,它將由用戶ID,msgID組成。

當他們(用戶)將消息標記爲已解除消息時,將msg id添加到userNotifications。這可以讓您爲所有未過期並且也未被用戶解僱的通知構建查詢。

+0

或者您可以創建一個cookie,該cookie包含帶消息ID的布爾值,並且用戶已將其隱藏;用PHP讀取它,如果設置了,不要在頁面上生成通知。 – 2012-03-23 16:04:21

+2

@scjosh,如果他在家裏,在學校,在工作場所,在機場,在麥克唐納,他仍然會得到通知和它的煩人...... mysql是要走的路。 – 2012-03-23 16:15:42