求解:关于论坛中帖子的分页显示的设计思路 怎么搞得,我发的帖子中的第二点居然没截断了,现在补发第2点如下: 2.读取数组A中第一个帖子的帖号(例如77),写入数组B,然后读取数据库中所有父贴号==77的帖子,将其中的第一个子贴号(例如80)写入数组B,然后以此办法循环读取80的子贴,子贴的子贴……全部读取后再读取77的第二个子贴,乃至其子贴全部读出,得出的帖号都依次写入数组B; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 建议你下载csdn里的树状论坛1.5版本看看,里面的树状排序算法相信会有参考价值:它每个帖子都没有记录父帖子id,只有自己的id.其实说白了就是根帖子id是0.一级子帖子id是0.001,0.002,......二级子帖子id是0.001001,.......按id排序完成后各个帖子就可以显示出树状层次.想显示哪几个都不难. to GDXY(GBOY) :其实这招我早就想过,但我考虑虽然都是BBS,但每个BBS的主题和内容类型不一样,就会有不同的需要。 你所说的这种方法有2个弊端: 一、每级子贴的帖子数量要在1000之内,而对于讨论性或争论性很强的BBS,超过1000的子贴数是可能的;(如果以4位或更多位来保留余地,那么下面第二点的弊端就更明显了) 二、如果有第12层子贴,那么它的帖号恐怕就太长了…… id的长度你不用担心,因为它虽然像一个小数,但是它根本是个字符串类型.它的排序函数根本不是用大于或者小于来比较,而是用strcmp比较字符串. 至于到底多少层会有问题?你可以到http://c973.51.net/bbs/里面看看,里面超过12层的主题是有的,如果你不放心可以创建一个50层的看看,没有问题的(记得测试完删除哦). 也可以看看这个http://c973.51.net/forum是树状论坛新版本的Demo版,未完成但是帖子的显示基本没有问题. to GDXY(GBOY): 你说的地址,我已经看过了,你的意思我也明白,不过还是有一个问题: 我做的BBS中有一个功能,就是用户可以自定义帖子的显示顺序: ①按照主帖的时间顺序排列显示; ②按照最新回复的子贴的时间顺序排列显示。 如果按照你说的设计思路,那么只能形成①的方式,而如果希望达到②的要求,恐怕就复杂了,至少要增加一个列,重新计算帖子顺序,而且由于没有父贴/子贴的记录,恐怕重新计算也麻烦,最重要的是:每次回复子贴都要计算一系列的父贴顺序,写入操作太多了。 不知我考虑的对不对…… 父贴和子贴使用不同的 table,父贴 table 的多一个字段,记录最新回复时间,在每次回复时顺便更改父贴 table 的这个字段,省的每次都要搜索一遍。这样每次在显示 BBS 的时候两种显示方式仅仅是按父贴的两个不同字段来查询,这两种显示方式所消耗的资源基本就没区别了 to: platinum(白金) 是我没有说明白,我希望的不仅是根帖按照最近回复进行翻新,同时各级父贴都能够翻新,这该如何设计才能最低限度的消耗资源呢? 请问csdn里的树状论坛1.5版本哪里有? 你是树型的啊……我不喜欢那种风格的,得挨个帖子点,麻烦也麻烦死了,如果事先全展开的整个论坛更是难看的很你这样的可以就一个 table,在每个帖子增加一个字段,如果一个子贴,其所有父帖、爷爷贴……的这个最后回复字段都更新一下,总可以提前计算完的就装进一个字段,减少搜索和查询的次数to RobinCat首页 -=> 软件 -=> 源程序/PHP to platinum(白金) : 我现在的BBS就是这么做的啊,但速度确实不好啊,我觉得2000个帖子根本不算多,但速度已经慢得受不了了,有没有更好的算法或是设计思路呢? to platinum(白金) :收到~多谢~ 首先,应该优化一下,像我们系里面,只查找最近一天或3天的贴子然后用户也可以转换成显示所有,感觉上会快好多(好像没解决问题)然后去zend上抓一个优化器,对了,在找找数学系的,那帮家伙,很厉害 页面加载顺序的问题~ 一个关于php数组的基础问题。 我下载的SKY风格不知道怎么改 谁能给我看看下面三个表的字段是什么,谢谢 php怎么和.net一起配置,并且不会相互影响。求高手 求高手大哥,看看我这段代码,错在哪里? 请问安装好PHP之后的.php文件是什么图标? 怎样判断数据库中的数据没有符合要求的数据?(sql server) HTML文件怎么也带参数 JS的参数利用 求大神帮忙 Phpexcel 如何实现整列下拉功能 怎样做一个IC卡验证系统? 怎么提取访问者的IP地址?
其实说白了就是
根帖子id是0.
一级子帖子id是0.001,0.002,......
二级子帖子id是0.001001,.......
按id排序完成后各个帖子就可以显示出树状层次.
想显示哪几个都不难.
你所说的这种方法有2个弊端:
一、每级子贴的帖子数量要在1000之内,而对于讨论性或争论性很强的BBS,超过1000的子贴数是可能的;(如果以4位或更多位来保留余地,那么下面第二点的弊端就更明显了)
二、如果有第12层子贴,那么它的帖号恐怕就太长了……
至于到底多少层会有问题?你可以到http://c973.51.net/bbs/里面看看,里面超过12层的主题是有的,如果你不放心可以创建一个50层的看看,没有问题的(记得测试完删除哦).
http://c973.51.net/forum
是树状论坛新版本的Demo版,未完成但是帖子的显示基本没有问题.
你说的地址,我已经看过了,你的意思我也明白,不过还是有一个问题:
我做的BBS中有一个功能,就是用户可以自定义帖子的显示顺序:
①按照主帖的时间顺序排列显示;
②按照最新回复的子贴的时间顺序排列显示。
如果按照你说的设计思路,那么只能形成①的方式,而如果希望达到②的要求,恐怕就复杂了,至少要增加一个列,重新计算帖子顺序,而且由于没有父贴/子贴的记录,恐怕重新计算也麻烦,最重要的是:每次回复子贴都要计算一系列的父贴顺序,写入操作太多了。
不知我考虑的对不对……
是我没有说明白,我希望的不仅是根帖按照最近回复进行翻新,同时各级父贴都能够翻新,这该如何设计才能最低限度的消耗资源呢?
我现在的BBS就是这么做的啊,但速度确实不好啊,我觉得2000个帖子根本不算多,但速度已经慢得受不了了,有没有更好的算法或是设计思路呢?
然后用户也可以转换成显示所有,感觉上会快好多(好像没解决问题)
然后去zend上抓一个优化器,
对了,在找找数学系的,那帮家伙,很厉害