請問如何設計站內訊息提示功能,比如segmentfault這樣的功能,我發布一個問題,有人回答以後,我會收到一個未讀訊息數目提醒,資料表怎麼設計比較合適?
回複內容:
請問如何設計站內訊息提示功能,比如segmentfault這樣的功能,我發布一個問題,有人回答以後,我會收到一個未讀訊息數目提醒,資料表怎麼設計比較合適?
notice_code是在代碼中定義的,同時也定義的通知資訊的模板
public static $notice_type = [ 'answer' => [ 'is_agreed' => [500, '[who] 贊了你的回答!'], 'is_modified' => [501, '[who] 修改了你的回答!'], 'is_fold' => [502, '[who] 摺疊了你的回答!'], 'has_new_comment' => [503, '[who] 評論了你的回答!'], ], ];
比中的503是代表評論通知,某人評論了某個回答,需要的參數就是:誰
通知清單中,先判斷通知代碼是什麼,找到對應的模板,根據相應參數,轉換裡面的變數[who]
剛才考慮一下,有一個初步的方案,請大家噴:
主要有2個表:
question:問題資訊的表
id(autoincrement) user_id(發表問題的使用者ID) question_id(問題ID(系統內唯一)) question_desc(問題表述) like_user_list(贊的使用者列表,user_id使用‘,’進行分割)
reply:
id(autoincrement) user_id(對問題進行回答的使用者ID) question_id(與question中的question_id為外鍵)reply_content(評論內容) like_user_list(贊的使用者列表,user_id使用‘,’進行分割) unlike_user_list(反對的使用者的ID list)
具體操作如下:
1、使用者發布一個問題的時候,向question中插入一條記錄;
2、別人對使用者的這個問題進行評論的時候,向reply中插入一條記錄
3、別人認為這個問題很好,對這個問題或者回複進行點贊,追加對應的like_user_list
需要進一步完善的地方:
(1)、對評論者的回複的記錄
資料庫表怎麼設計我就不多說了 我想說的是提醒類的並不適合存表 一般考慮走緩衝 不可能我每重新整理一次都去表裡count一遍 這種資料直接走緩衝更高效