[英]Notification and PHP+MySQL design
我正在制作一個具有帖子和回復系統的網站。
我想做的是,當有人回復時,向曾經回復(或參與)帖子的人發送通知。
我的想法是創建一個名為Notification
的表,其中包含message
和已seen
(已看到/未讀)字段。 人們回復后,INSERT記錄到Notification
表中。
這似乎很容易而且很直觀,但是例如,如果涉及到很多人,例如第31位用戶的回復,那么曾經回答過的30個人將收到通知。 這將產生30行SQL記錄。 而第32位用戶將記錄31條記錄。 然后,總行數將變為30+31=61
。
我的問題是
非常感謝。
我正在創建類似的系統。 這是我的經驗:
我的通知表如下所示:id(int)| user_id(int)| post_id(int)| last_visited(日期時間)。
因此,當用戶打開頁面時,我正在數據庫中尋找條目(user_id + post_id)。 如果找到它,那么如果找不到,我將更新last_visited字段,然后創建新行。
當我需要列表消息進行通知時,我只查詢在last_visited時間之后創建的所有消息。
我也有cron sript為關閉的帖子或被禁止的用戶提供干凈的通知。
至於您的問題:
1和2:您必須在要存儲的數據量和站點性能之間找到平衡。 如果您不需要存儲所有這些數據,可以按照我的方式進行。 如果需要此數據,則更好。
3:這取決於訪問者的數量和其他功能。 但是這里有一些建議。 您必須為MySql表使用索引以獲得更好的性能。 另外,您還應該考慮將刪除無用的通知的cron腳本。 如果每天有大量訪問者超過70萬,則應該考慮MogoDb或其他高性能noSql數據庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.