gpt4 book ai didi

PHP 论坛 - 如何处理未读的讨论/主题/帖子

转载 作者:IT老高 更新时间:2023-10-28 23:43:58 34 4
gpt4 key购买 nike

我知道这个问题已经在这里问过几次了,但没有一个答案让我满意。这是因为几乎所有这些都涉及与数据库相关的巨大读/写过程,我想不惜一切代价避免。

关于未读的讨论/主题/帖子,有很多事情要考虑。不知道MyBB之类的论坛系统怎么样, vBulletin , Invision Power Board , Vanilla , phpBB等,解决这个问题,所以我想从你们那里读一读你的经验。我知道仅为此使用数据库表是最简单的方法,但是当社区每月有超过 10,000 名成员和 1000 个新主题时,这将涉及大量读取/写入。这很难,但应该有办法避免服务器重载。

那么,您认为解决此问题的最佳做法是什么,以及其他论坛系统如何应对?

最佳答案

没有太多选择。

  1. 标记每个用户的每个读者线程。

    • 缺点:在非常活跃的论坛中有很多行
    • 优点:每个用户都知道帖子是否已阅读。
  2. 标记每个用户的每个未读线程。

    • 缺点:如果有很多用户不活动,会有很多空间包含“未读”行
    • 解决方案:添加生命周期时间戳并使用 cron 删除旧记录
    • 优点:每个用户都知道帖子是否已阅读。
  3. 使用时间戳来确定是否将其显示为未读。

    • 缺点:用户不知道的是真正的未读线程,标记仅显示自上次登录以来的“新线程”
    • 优点:节省空间

另一种选择是混合解决方案,即

1 和 3) 如果线程不超过 X 天并且没有为用户标记为已读的行,则将线程显示为“未读”。 “已读”行可以在 X 天前被删除,而不会影响任何事情。

优势

  • 用于确定未读线程的间隔较小

缺点

  • 创建一个保持系统清洁的 cron
  • 用户不知道他们是否阅读了超过 x 天的帖子。

优势

  • 每个用户都知道哪些“新帖子”已阅读或未阅读。

关于PHP 论坛 - 如何处理未读的讨论/主题/帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2288814/

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