【发布时间】:2012-06-21 11:13:41
【问题描述】:
我正在为我的网站上的个人资料制作一个“最近活动”标签,并且我还将为版主创建一个日志,以查看网站上发生的所有事情。这需要制作某种活动日志。
我只是不知道什么会更好。我有两个选择:
- 制作一个名为“活动”的表,然后每次有人做某事时,添加一条记录,其中包含操作类型、用户 ID、时间戳等。
- 问题:表格可能会变得很长。
- 加入所有 3 个表格(问题、答案、answer_cmets),然后以某种方式在页面上按照执行操作的顺序显示所有这些。
- 问题:这将是非常困难的,因为我不知道如何才能说“John 在此处对问题标题的答案发表了评论”,只需加入 3 个表格。
有没有人知道在这种情况下制作活动日志的更好方法?我正在使用 PHP 和 MySQL。如果这太低效或太难,我可能会忘记个人资料上的“最近活动”选项卡,但我仍然需要版主的活动日志。
这是我开始为选项 2 编写的一些 SQL,但这不起作用,因为当我在 while 循环中回显信息时,无法检测该操作是评论、问题还是答案:
SELECT q.*, a.*, ac.*
FROM questions q JOIN answers a ON a.questionid = q.qid
JOIN answer_comments ac ON c.answerid = a.ans_id
WHERE q.user = $userid
AND a.userid = $userid
AND ac.userid = $userid
ORDER BY q.created DESC, a.created DESC, ac.created DESC
提前感谢您的帮助!
【问题讨论】: