我知道这个问题已经被问过几次了,但是没有一个答案令我满意。这是因为几乎所有人都涉及与数据库相关的巨大读取/写入过程,我希望不惜一切代价避免这样做。
关于未读的讨论/主题/帖子,有很多需要考虑的地方。我不知道MyBB,vBulletin,Invision电源板,Vanilla,phpBB等论坛系统如何解决该问题,所以我想向大家介绍您的经验。我知道,仅为此目的使用数据库表是最简单的方法,但是当社区每月有10,000多个成员和1000个新主题时,这将涉及大量的读/写操作。很难,但是应该有一种避免服务器过载的方法。
那么,您如何看待该问题的最佳实践以及其他论坛系统如何应对?
没有太多选择。
每个用户标记每个阅读器线程。
标记每个用户的每个未读线程。
缺点:如果很多用户不活动,则带有“未读”行的空间很大
使用时间戳确定是否将其显示为未读。
缺点:用户不知道的是真正的未读线程,标记仅显示自上次登录以来的“新trheads”
另一种选择是混合解决方案,即
1和3)如果线程不超过X天并且没有为用户标记为已读的行,则将线程显示为“未读”。X天前可以删除“已读”行,而不会影响任何行。
优点
缺点