2
我需要一些建議... 我有一個應用程序,用戶可以在其中執行某些操作。 例如,用戶可以有朋友。 因此... 用戶可以看到他的朋友活動。 那麼我應該如何在數據庫中實現活動日誌? 我應該有一張新桌子嗎? 我可以從多個表中進行一些查詢並對聯合結果進行排序嗎?在DB中存儲用戶歷史記錄的最佳做法
我需要一些建議... 我有一個應用程序,用戶可以在其中執行某些操作。 例如,用戶可以有朋友。 因此... 用戶可以看到他的朋友活動。 那麼我應該如何在數據庫中實現活動日誌? 我應該有一張新桌子嗎? 我可以從多個表中進行一些查詢並對聯合結果進行排序嗎?在DB中存儲用戶歷史記錄的最佳做法
我建議你創建一個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文本存儲在一個單獨的列。
非常感謝....非常好的主意 – user1136875 2012-03-11 07:38:18