• 设计树形结构


    设计树形结构,后面再研究下是否可行

    如果你的树深度是可预期的话,有个超简单的数据结构。你需要3个字段来表达这个树:

    1. id,本节点的primary key
    2. parent_id,其值为父节点的primary key
    3. key,忘了学名叫啥了,你可以称为线索
    4. level,表示当前节点到根节点的距离

    其中,key字段的值为:从跟节点到父节点的primary key,中间用任意非数字符号分割。

    例如以下树状结构

    ├── a
    │   ├── d
    │   │   ├── p
    │   │   ├── q
    │   │   └── r
    │   ├── e
    │   └── f
    ├── b
    │   ├── x
    │   ├── y
    │   └── z
    ├── c

    | id | value | parent_id | key   | level |                                
    | 1  | a     | 0         | "-"    | 1     |
    | 2  | b     | 0         | "-"    | 1     |
    | 3  | c     | 0         | "-"    | 2     |
    | 4  | d     | 1         | "1-"   | 2     |
    | 5  | e     | 1         | "1-"   | 2     |
    | 6  | f     | 1         | "1-"   | 2     |
    | 7  | x     | 2         | "2-"   | 2     |
    | 8  | y     | 2         | "2-"   | 2     |
    | 9  | z     | 2         | "2-"   | 2     |
    | 10 | p     | 4         | "1-4-" | 3     |
    | 11 | q     | 4         | "1-4-" | 3     |
    | 12 | r     | 4         | "1-4-" | 3     |

    于是,在给定一个节点d的时候,

    1. 查找d的所有子孙节点:select * from table_name where key like "${d.id}-${d.key}-%"
    2. 查找某个节点的所有子节点:select * from table_name where key like "${d.id}-${d.key}-%" and level=${d.level}+1

    有追求,才有动力!

    向每一个软件工程师致敬!

    by wujf

    mail:921252375@qq.com

  • 相关阅读:
    高斯核函数的代码体现
    程序编译
    DoH
    随笔1
    获取节点值的方式
    DOM解析XML
    URLConnection发送请求,并接收数据
    myeclipse编译后的jsp文件存放位置
    各种中文乱码
    各种提交的区别
  • 原文地址:https://www.cnblogs.com/wujf/p/6439588.html
Copyright © 2020-2023  润新知