数据库存储 层次、树形结构 的标准做法
2017-08-02 17:53
274 查看
标准做法有3种:
1、最早的做法:节点id里包含完整路径(曾祖父id-爷id-父id-本id)
財务的会计科目编号就是这么做的
如今基本非常少使用了
2、递归做法:父id,本id(更早、完整的关系提供递归才干得到)
眼下比較普遍
优点是直观简单,增删方便
坏处是生成树须要递归
3、直接保存法:本id,根id,层次数,在根(子树)里的序号
好像没看到别人这么用的,我在自己的树形论坛离线阅读器里採用过
优点是避免了递归。生成树记录高效方便
坏处是增删节点。须要更新半个子树的节点记录
(曾公布在: http://bbs.csdn.net/topics/390248889#post-392670699 )
1、最早的做法:节点id里包含完整路径(曾祖父id-爷id-父id-本id)
財务的会计科目编号就是这么做的
如今基本非常少使用了
2、递归做法:父id,本id(更早、完整的关系提供递归才干得到)
眼下比較普遍
优点是直观简单,增删方便
坏处是生成树须要递归
3、直接保存法:本id,根id,层次数,在根(子树)里的序号
好像没看到别人这么用的,我在自己的树形论坛离线阅读器里採用过
优点是避免了递归。生成树记录高效方便
坏处是增删节点。须要更新半个子树的节点记录
(曾公布在: http://bbs.csdn.net/topics/390248889#post-392670699 )
相关文章推荐
- 数据库存储 层次、树形结构 的标准做法
- 树形结构在数据库中的存储与CRUD操作
- 【MySQL疑难杂症】如何将树形结构存储在数据库中(方案二 Path Enumeration)
- 左右值编码来存储无限分级树形结构的数据库表设计
- 采用左右值编码来存储无限分级树形结构的数据库表设计
- Atitit.各种 数据类型 ( 树形结构,表形数据 ) 的结构与存储数据库 attilax 总结
- 采用左右值编码来存储无限分级树形结构的数据库表设计
- 发明一种新的树形结构数据库存储方案
- Atitit.各种 数据类型 ( 树形结构,表形数据 ) 的结构与存储数据库 attilax 总结
- 利用多叉树将数据库中的层次数据转换成树形结构的JSON字符串
- 采用左右值编码来存储无限分级树形结构的数据库表设计
- 树形结构的数据存储和数据库表设计
- 树形结构的数据存储与数据库表设计
- 采用左右值编码来存储无限分级树形结构的数据库表设计收藏
- 采用左右值编码来存储无限分级树形结构的数据库表设计
- 采用左右值编码来存储无限分级树形结构的数据库表设计
- 用于层次结构数据库批量导入(Insert)的存储过程
- 【MySQL疑难杂症】如何将树形结构存储在数据库中(方案一 Adjacency List)
- 采用左右值编码来存储无限分级树形结构的数据库表设计
- 采用左右值编码来存储无限分级树形结构的数据库表设计