国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用排序串字段實現樹狀結構(原理)

2019-11-18 22:29:41
字體:
來源:轉載
供稿:網友
實現原理:以一排序字段(字符型實現排序),該字段的實際長度即為回復深度(用一位字符代表一層深度時)。
    所受限制:回復深度只受排序串定義長度的限制(有點象空間換深度),每貼回復數(包括根貼和子貼)為30左右(當sql
server使用Dictionary order,case-insensitive排序方式,即不區分字母大小寫時),如果sql server使用Binary orders排
序方式時受限為127(255?)。
    改進方法:如果覺得不夠用,可以使用多位字符對應一個深度(這樣計算有點麻煩),或使用幾位數字代表一個深度,例如3
位數字——最多可以999個子貼,不過些時排序字段的長度應為“3*最大深度”)
優點:此法是正則的——均勻的。

    有關樹狀結構的字段:rootid、orderstr(varchar型,按需要深度定,假如你最大要使用20層回復深度,則定為varchar
(20),余類推)

例如:(以下排序均按order by rootid+(1-sign(rootid))*lybid desc,orderstr,id desc排序)
id     rootid    orderstr
1        0        空串
2        1        z  ——回復根貼,使用串z初始化排序字串
___________________
3        1        y  ——回復1,將排在1后面的排序字符串的最后一個字符z的ascii碼減1,組成新的排序串。

排序結果為:
id     rootid    orderstr
1        0        空串
3        1        y
2        1        z
___________________
4        1        x  ——回復1貼,排序字符串求法同上

排結果為:
id     rootid    orderstr
1        0        空串
4        1        x
3        1        y
2        1        z
___________________
5        1        xz ——回復4貼,檢查4貼是否已經有回復,現沒有,初始化排序串第二個字符(在4后加上z)

排序結果為:
id     rootid    orderstr
1        0        空串
4        1        x
5        1        xz
3        1        y
2        1        z
___________________
6        1        xy ——回復4貼,將4貼的第一子貼的排序字串最后一個字符的ascii碼減1

排序結果為:
id     rootid    orderstr
1        0        空串
4        1        x
6        1        xy
5        1        xz
3        1        y
2        1        z

這樣,根據orderstr和len(orderstr)——深度結合就實現了樹狀結構。
id        orderstr
1           空串
  4          x
    6        xy
    5        xz
  3          y
  2          z

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 屏东县| 泰兴市| 宜君县| 汉川市| 柯坪县| 舞阳县| 宜川县| 大荔县| 淅川县| 靖远县| 柯坪县| 奉贤区| 彭山县| 池州市| 西丰县| 潼南县| 科尔| 南靖县| 绩溪县| 五常市| 英山县| 东莞市| 遵义市| 石渠县| 龙岩市| 大厂| 高州市| 澄迈县| 甘洛县| 大洼县| 正安县| 灵寿县| 双桥区| 九江市| 高台县| 苏尼特右旗| 泌阳县| 周口市| 阳信县| 扬州市| 铜陵市|