数据库设计时会涉及一些树结构的存储:储存地区时,城市各级地区名的存储(城市——》县——》镇),需要关联模式使它们存储起来
四种方法
1. adjaceny list(邻接表)
记录每个节点属性像是邻接表一样,每个节点信息除了自己的值,还包括父节点(链表)
简单、访问子节点需要递归循环,广搜简单,深搜难;增删简单。
2. path enumerations(路径枚举)
每个节点以字符串信息赋予路径,(如1/2/6)
存储空间少,需要对字符处理,需要like模糊查询;访问多级方便;深搜简单,广搜难;增删难
3. closure table(闭包表)
以本节点为根节点,记录其所有子节点和深度
操作不直观、占用空间大;对深搜和广搜的效率都比较均衡
4. nested sets(嵌套集合)
每个节点都记录其左右值,每个节点会类似于前序遍历两次
深搜无需递归;表很复杂,操作难,增删难