我需要一些建议...... 我有一个用户可以执行某些操作的应用程序。 例如,用户可以有朋友。 所以... 用户可以看到他的朋友活动。 那么我该如何在数据库中实现活动日志呢? 我应该有一张新桌子吗? 我可以从多个表中进行一些查询并对连接的结果进行排序吗?
答案 0 :(得分: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于3月10日添加了一位新朋友用户#5。
用户#15在3月10日添加了第19条新评论。用户#15于3月10日添加了#84的新图像。
用户#15于3月10日更改了显示图片。
<强>更新强> 可能存在这样的活动,其中object_id没有意义 - 更新的显示图像,更新的配置文件信息等。在这里,您可以将文本差异存储在单独的列中。