我正在为我的网站上的个人资料制作一个“最近活动”选项卡,并且我还将为管理员设置一个日志,以查看网站上发生的所有事情。这将需要制作某种类型的活动日志。
我不知道哪种方式更好。我有两个选择:
1.创建一个名为“activity”的表,然后每次有人执行操作时,添加一条记录,包括操作类型、用户ID、时间戳等。 问题:表可能会变得非常长。
2.连接所有三个表(questions,answers,answer_comments),然后以操作顺序的方式在页面上显示所有内容。 问题:这将非常困难,因为我不知道如何通过连接3个表来使其显示为“John评论了此处的问题标题的答案”。
是否有人知道在这种情况下制作活动日志的更好方法?我正在使用PHP和MySQL。如果这要么效率低下要么太困难,我可能会忘记个人资料上的最近活动选项卡,但我仍然需要为管理员创建活动日志。
这是一些我开始制作第二个选项的SQL语句,但这将无法工作,因为在while循环中输出信息时无法检测到操作是评论、问题还是回答。
感谢您提前提供的任何帮助!
我不知道哪种方式更好。我有两个选择:
1.创建一个名为“activity”的表,然后每次有人执行操作时,添加一条记录,包括操作类型、用户ID、时间戳等。 问题:表可能会变得非常长。
2.连接所有三个表(questions,answers,answer_comments),然后以操作顺序的方式在页面上显示所有内容。 问题:这将非常困难,因为我不知道如何通过连接3个表来使其显示为“John评论了此处的问题标题的答案”。
是否有人知道在这种情况下制作活动日志的更好方法?我正在使用PHP和MySQL。如果这要么效率低下要么太困难,我可能会忘记个人资料上的最近活动选项卡,但我仍然需要为管理员创建活动日志。
这是一些我开始制作第二个选项的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
感谢您提前提供的任何帮助!