我正在为我的网站上的个人资料制作一个“最近的活动”选项卡,我还将为版主创建一个日志,以查看网站上发生的所有事情。这将需要制作某种活动日志。
我只是不知道什么会更好。我有两个选择:
- 制作一个名为“活动”的表,然后每次有人做某事时,添加一条记录,其中包含操作类型、用户 ID、时间戳等。
- 问题:桌子可能会变得很长。
- 加入所有 3 个表(问题、答案、answer_comments),然后以某种方式在页面上按照执行操作的顺序显示所有这些表。
- 问题:这将非常困难,因为我不知道如何通过仅加入 3 个表格来使其说出“John 在此处对问题标题的答案发表评论” 。
有谁知道在这种情况下制作活动日志的更好方法?我正在使用 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
提前感谢您的帮助!