我知道这个问题已经被问过几次了,但是没有一个答案令我满意。这是因为几乎所有人都涉及与数据库相关的巨大读取/写入过程,我希望不惜一切代价避免这样做。
关于未读的讨论/主题/帖子,有很多需要考虑的地方。我不知道MyBB,vBulletin,Invision电源板,Vanilla,phpBB等论坛系统如何解决该问题,所以我想向大家介绍您的经验。我知道,仅为此目的使用数据库表是最简单的方法,但是当社区每月有10,000多个成员和1000个新主题时,这将涉及大量的读/写操作。很难,但是应该有一种避免服务器过载的方法。
那么,您如何看待该问题的最佳实践以及其他论坛系统如何应对?
没有太多选择。
每个用户标记每个阅读器线程。
标记每个用户的每个未读线程。
缺点:如果很多用户不活动,则带有“未读”行的空间很大
使用时间戳确定是否将其显示为未读。
缺点:用户不知道的是真正的未读线程,标记仅显示自上次登录以来的“新trheads”
另一种选择是混合解决方案,即
1和3)如果线程不超过X天并且没有为用户标记为已读的行,则将线程显示为“未读”。X天前可以删除“已读”行,而不会影响任何行。
优点
缺点
优点
自动检测设定论坛最新帖子,显示最新帖子列表,新帖自动提示,让你成为论坛抢沙发第一人!
php+mongodb能实现类似于”掘金“这个论坛的帖子功能,首页展示的基本上不会重复,并且都是随机的, 使用list存入文章id,然后把id变成随机的,但是重复刷新分页变成了1的话,数据又还原了,如果监听分页页数变成了1就重新排序一次的话,对于游客就不是很友好
Objective-C是一种通用的,面向对象的编程语言,它将Smalltalk样式的消息传递添加到C编程语言中。 这是Apple用于OS X和iOS操作系统及其各自API(Cocoa和Cocoa Touch)的主要编程语言。 在学习Objective-C编程语言时,此参考资料将引导您通过简单实用的方法。
OAuth2.0是一种开放式授权协议,允许通过在Facebook,GitHub等HTTP服务上启用客户端应用程序来访问资源所有者的资源。它允许将存储在一个站点上的资源共享到另一个站点,而无需使用其凭据。 它使用用户名和密码令牌代替。
Pascal是一种程序编程语言,于1968年设计,由Niklaus Wirth于1970年出版,以纪念法国数学家和哲学家Blaise Pascal而命名。 Pascal运行在各种平台上,例如Windows,Mac OS和各种版本的UNIX/Linux。 本教程将帮助您深入了解Pascal以继续使用Delphi和其他相关框架等。
Parrot是一个虚拟机,旨在有效地编译和执行解释语言的字节码。 Parrot专为动态语言而设计。 Parrot是各种语言的目标,如Perl,Tcl,Ruby,Python等。在本教程中,我们将学习使用Parrot for Perl编译器。