国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蓬安县| 新民市| 绵阳市| 洪洞县| 吴桥县| 湘阴县| 庆城县| 义马市| 岳阳县| 大安市| 大连市| 鹤庆县| 合山市| 武宁县| 涞源县| 仁怀市| 北票市| 浦北县| 余江县| 砚山县| 淮安市| 祥云县| 井研县| 阿坝县| 镇巴县| 元谋县| 类乌齐县| 邢台市| 曲阳县| 启东市| 高青县| 邳州市| 扶余县| 云和县| 湘乡市| 军事| 周宁县| 榆中县| 德安县| 乐山市| 绵阳市|