gpt4 book ai didi

php - 处理 PHP/MySQL 中的未读帖子

转载 作者:IT老高 更新时间:2023-10-29 00:00:50 24 4
gpt4 key购买 nike

对于个人项目,我需要使用 PHP 和 MySQL 构建一个论坛。我不可能使用已经构建的论坛包(例如 phpBB)。

我目前正在研究构建这样一个应用程序所需的逻辑,但这是漫长的一天,我在为用户处理未读帖子的概念上苦苦挣扎。我的一个解决方案是有一个单独的表,它基本上包含所有帖子 ID 和用户 ID,以确定它们是否已被阅读:

tbl_userReadPosts: user_id, post_id, read_timestamp

显然,如果用户的 ID 出现在此表中,我们就知道他们已经阅读了该帖子。这很好,除非我们每天有数千个帖子(这在提议的系统中是不可能的),以及成千上万的用户。如果不是几个小时,这张表将在几天内变得巨大。

另一种选择是将用户的最后一次事件作为时间戳进行跟踪,然后检索他们最后一次事件更新后发布的所有帖子。这在理论上是可行的,但假设一个用户正在写一篇非常长的帖子,与此同时,几个成员也开始了新的话题或回复了其他话题中的帖子。当用户提交他的新帖子时,他的最后一个事件将被更新,因此与同时进行的事件不匹配。

有没有人有这方面的经验,您是如何解决的?

我已经检查过 phpBB,系统似乎为每个用户分配了一个自定义 session ,并在此基础上工作,但是关于如何处理未读帖子的文档非常稀少。

一如既往地收到想法和意见。

最佳答案

很抱歉回答这么快,但我只有一秒钟的时间。您肯定不想将读取的信息存储在数据库中,正如您已经推断的那样,该表将变得巨大。

介于您已经建议的内容之间:存储用户上次事件,并结合存储他们在 cookie 中看到的内容的信息,以确定他们已经阅读了哪些线程/帖子。

这会将存储卸载到客户端 cookie,这样效率更高。

关于php - 处理 PHP/MySQL 中的未读帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5554637/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com