六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

bbs樹(shù)形結(jié)構(gòu)的完成方法(3)

[摘要]【bigeagle】 于 2000-12-6 14:45:13 加貼在 Joy ASP ↑:下面這種方法是white提出來(lái)的。BBS數(shù)據(jù)庫(kù)結(jié)構(gòu)的浮點(diǎn)數(shù)表示法BBS由一系列的文章組成,每篇文章有一些基...
【bigeagle】 于 2000-12-6 14:45:13 加貼在 Joy ASP ↑:

下面這種方法是white提出來(lái)的。

BBS數(shù)據(jù)庫(kù)結(jié)構(gòu)的浮點(diǎn)數(shù)表示法

BBS由一系列的文章組成,每篇文章有一些基本屬性,比如作者,創(chuàng)建時(shí)間,文章編號(hào)等。其中最為重要的,用以表示樹(shù)形結(jié)構(gòu)的是層和序數(shù)。層表示位于文章樹(shù)的第幾層,最高層的帖子層等于0,其回復(fù)的層為1,回復(fù)的回復(fù)層為2,以此類推。所有層等于0的帖子依時(shí)間順序其序數(shù)分別為1,2,3.....剩下的帖子的序數(shù)滿足以下條件:當(dāng)所有帖子按照樹(shù)形顯示的時(shí)候,其序數(shù)從大到小排列,沒(méi)有例外。

上述方法具體到BBS的實(shí)現(xiàn)時(shí),各種操作如下進(jìn)行:
0、系統(tǒng)維護(hù)一個(gè)記數(shù)器,表示當(dāng)前使用的整數(shù)序數(shù)。
1、顯示帖子列表:依序數(shù)值的大小倒序簡(jiǎn)單地顯示即可,帖子的層可幫助決定退格的多少。2、新加帖子:如果是層0上的帖子,則取下一個(gè)整數(shù)序數(shù)作為該帖子序數(shù);如果是層L1帖子,其序數(shù)為N1,則新帖子的層L=L1+1,然后到數(shù)據(jù)庫(kù)中查找序數(shù)為N1的帖子的下一條帖子,取其序數(shù),假設(shè)為N2,則新帖子的序數(shù)N=(N1+N2)/2。3、刪除帖子:假設(shè)是刪除層L1,序數(shù)為N1的帖子及其所有跟貼,則取層同為L(zhǎng)1的下一個(gè)帖子
的序數(shù)N2,然后刪除所有序數(shù)為從N1到N2(不包括N2)的帖子。

上述方法的最大優(yōu)勢(shì)在于顯示帖子列表時(shí)不需要進(jìn)行任何額外的操作,速度異常的快,根本不需要進(jìn)行任何的遞歸操作。另外就是分頁(yè)異常的方便,如果按照每頁(yè)固定主題數(shù),那么可以在SQL查詢中僅僅返回當(dāng)前頁(yè)的記錄,可以將對(duì)系統(tǒng)的資源利用降低到最小。即使按照每頁(yè)固定帖子總數(shù),也可以限制SQL查詢僅僅返回一頁(yè)所需的記錄。

下面是一個(gè)各種值的直觀表示(為了容易理解,這里按照序數(shù)的升序排列,實(shí)際實(shí)現(xiàn)時(shí)將按降序,以讓最后的帖子顯示在最前面):

1.topic1(層=0,序數(shù)=1)
  5.Re:topic1(層=1,序數(shù)=1.125)
  4.Re:topic1(層=1,序數(shù)=1.25)
  3.Re:topic1(層=1,序數(shù)=1.5)
    6.Re:Re:topic1(層=2,序數(shù)=1.75)
      8.Re:Re:Re:topic1(層=3,序數(shù)=1.7875)
    7.Re:Re:topic1(層=2,序數(shù)=1.825)
2.topic2(層=0,序數(shù)=2)
  10.Re:topic2(層=1,序數(shù)=2.5)
9.topic3(層=0,序數(shù)=3)
  11.Re:topic3(層=1,序數(shù)=3.5)

從上面這個(gè)例子中可以看出,隨著層的增加,以及跟帖的增多,其序數(shù)的尾數(shù)越來(lái)越多,因此,這種方法的一個(gè)可能的問(wèn)題是,SQL SERVER中無(wú)法表示足夠小的浮點(diǎn)數(shù),以至于將兩條帖子的序數(shù)認(rèn)為是一樣的了。經(jīng)過(guò)實(shí)驗(yàn)知道,SQL SERVER的浮點(diǎn)數(shù)有8位,最多能支持一條帖子有1023條回貼。

上述方法的另一個(gè)缺點(diǎn)是帖子列表時(shí)要做浮點(diǎn)的比較,插入帖子的時(shí)候要做浮點(diǎn)的加法和除法,不過(guò)除法因?yàn)閯偤檬浅?,所以在浮點(diǎn)運(yùn)算時(shí)只需要較少的操作。但這屬于機(jī)器指令級(jí)的開(kāi)銷(xiāo)增長(zhǎng),比起在腳本或VB程序里的遞歸導(dǎo)致WINDOWS系統(tǒng)調(diào)用的開(kāi)銷(xiāo)來(lái)要小得多,另外,對(duì)系統(tǒng)內(nèi)存的要求降低到了最小,因此理論上認(rèn)為是劃算的。

請(qǐng)您就這種方法的可行性進(jìn)行分析論證,因?yàn)槲蚁氚阉O(shè)計(jì)成能支持大容量用戶訪問(wèn)的系統(tǒng),所以務(wù)必經(jīng)過(guò)周密的分析。





主站蜘蛛池模板: 欧美一区二区三区东南亚 | 亚洲一区免费在线 | 日本性欧美 | 色域综合| 色视频一区二区三区 | 欧美一级特黄一片免费 | 窝窝女人体国产午夜视频 | 天天做天天爱夜夜爽毛片毛片 | 色久综合网| 色噜噜狠狠色综合免费视频 | 在线青草 | 日本卡一卡2卡3卡4精品卡无人区 | 日韩精品一区二区三区毛片 | 亚洲国内精品久久 | 色黄啪啪网 | 伊人官网 | 色偷偷亚洲女人天堂观看欧 | 青草青青视频在线观看 | 日韩精品免费在线观看 | 欧美一区中文字幕 | 日本tv欧美tv天堂 | 天天弄天天操 | 日本一在线中文字幕天堂 | 天天干天天插天天操 | 日韩爽爽视频爽爽 | 日韩美一区二区三区 | 日韩在线免费 | 午夜在线播放免费人成无 | 亚洲欧美国产精品专区久久 | 青草视频app | 污污的视频在线播放 | 天天躁日日躁成人字幕aⅴ 天天躁日日躁 疯人影院 | 无人精品乱码一区二区三区 | 伊人中文字幕在线 | 羞羞答答免费人成黄页在线观看国产 | 亚洲国产成人久久一区二区三区 | 亚洲国产高清在线 | 午夜亚洲国产精品福利 | 午夜久久久 | 亚洲精品国产福利片 | 日本性网|