2012-03-11 72 views
2

我需要一些建議... 我有一個應用程序,用戶可以在其中執行某些操作。 例如,用戶可以有朋友。 因此... 用戶可以看到他的朋友活動。 那麼我應該如何在數據庫中實現活動日誌? 我應該有一張新桌子嗎? 我可以從多個表中進行一些查詢並對聯合結果進行排序嗎?在DB中存儲用戶歷史記錄的最佳做法

回答

3

我建議你創建一個activity_type表和一個日誌表。

activity_type | id | name   | table 
--------------+----+----------------+------- 
       1 | added friend | tbl_users 
       2 | added comment | tbl_comments 
       3 | added image | tbl_images 
       4 | Updated dp  | NULL 

現在你可以使用下表

logs_table | id | user | activity_type | object_id | time_stamp 
--------------+----+------+----------------+-----------+------------ 
       1 | 15 | 1    | 5   | 2012-03-10 08:45:05 
       2 | 15 | 2    | 19  | 2012-03-10 08:46:05 
       3 | 15 | 3    | 84  | 2012-03-10 08:47:05 
       4 | 15 | 4    | NULL  | 2012-03-10 08:48:05 

用戶#15輕鬆地維護日誌添加一個新朋友的用戶#5 3月10日。

用戶#15在3月10日添加了新評論#19。

用戶#15在3月10日添加了一張新圖像#84。

用戶#15在3月10日改變了他的顯示圖片。

UPDATE 可能有活動,其中OBJECT_ID無厘頭喜歡 - 更新的顯示圖像,更新個人資料信息等。在這裏你都不可能DIFF文本存儲在一個單獨的列。

+0

非常感謝....非常好的主意 – user1136875 2012-03-11 07:38:18

相關問題