处理 PHP /MySQL 中的未读帖子
对于个人项目,我需要使用PHP和MySQL构建一个论坛。我无法使用已经构建的论坛包(例如phpBB)。
我目前正在研究构建这样一个应用程序所需的逻辑,但已经是漫长的一天,我正在为用户处理未读帖子的概念而苦苦挣扎。我的一个解决方案是有一个单独的表,它基本上保存所有帖子ID和用户ID,以确定它们是否已被读取:
tbl_userReadPosts: user_id, post_id, read_timestamp
显然,如果用户的 ID 出现在此表中,则表示我们知道他们已阅读该帖子。这很好,除非我们每天有数以百计的帖子(这在所提议的系统中是可能的),以及数以万计的用户。这张桌子将在几天内变得很大,如果不是几个小时的话。
另一种选择是将用户的最后一次活动作为时间戳进行跟踪,然后检索在上次活动更新后发布的所有帖子。这在理论上是可行的,但假设一个用户正在写一个极长的帖子,同时几个成员也开始新线程或回复其他线程中的帖子。当用户提交他的新帖子时,他的最后一个活动将被更新,因此与在此期间所做的活动不匹配。
有没有人有这方面的经验,你是怎么解决的?
我已经检查了phpBB,似乎系统为每个用户分配了一个自定义会话,并在此基础上工作,但是关于如何处理未读帖子的文档非常稀疏。
一如既往地感激地收到想法和意见。