社区
基础和管理
帖子详情
树结构在数据库表存储中通常如何表示?
BlueanGel
2005-08-09 11:51:31
树要求:
1. 子节点易于扩展,每个节点下所包含子节点树无法估计
2. 节点在10w个以内
3. 深度遍历为主要遍历手段,广度遍历辅助
这种表该怎么设计?
...全文
152
7
打赏
收藏
树结构在数据库表存储中通常如何表示?
树要求: 1. 子节点易于扩展,每个节点下所包含子节点树无法估计 2. 节点在10w个以内 3. 深度遍历为主要遍历手段,广度遍历辅助 这种表该怎么设计?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sungangsg
2005-08-09
打赏
举报
回复
加一个父节点的字段,字段有编码规则,如0101的父结点为01,该方法适合深度遍历,可以无限扩展。
waterfirer
2005-08-09
打赏
举报
回复
对,那就要看你要往表里存什么了。
如果是物品,可以存物品编码
如果是类别,可以存类别编码
。。。。。。
除了父节点、子节点外,表里还有哪些字段,如何选择主键,跟你的系统设计和实际业务就有很大关系了
fkeiwgj
2005-08-09
打赏
举报
回复
可以把节点ID定为顺序数字:
1,2,3,4,5,6。。。。。
在oracle中有一个处理这种只要知道根节点就能顺序查询的语句start with.. connect by
liuyi8903
2005-08-09
打赏
举报
回复
这个。。。。。
就看你的实际业务了。
你拿点数据上来大家一起分析分析。
BlueanGel
2005-08-09
打赏
举报
回复
既然编码规则不适合这种情况,该用什么方式比较合适呢?
waterfirer
2005-08-09
打赏
举报
回复
因为深度遍历为主要遍历手段,因此不建议这样的编码规则,那样下去字段值就太长了。
而且有可能出现这样情况:原来是a-->b-->c-->d
将b-->c关系打断,加上d-->a关系
变为c-->d-->a-->b
此时,编码规则不起任何作用。
liuyi8903
2005-08-09
打赏
举报
回复
如:
子节点 父节点
01 0
001 01
00101 001
0010101 00101
可以设计成以上的数据结构。
查询时可以用
start with.. connect by
“动画讲解+手写代码”走进数据结构+算法
一、通过图解原理+手写代码实现,深度讲解如下基本数据结构: 基本二叉树、23树、红黑树、B树、B+树、B*树等等 同时还介绍了硬盘运行原理(主要描述与
树结构
的关系)、
数据库
索引原理(主要描述与
树结构
关系)等用到...
树形结构的
数据库
表
设计
然而目前的各种基于关系的
数据库
,都是以二维
表
的形式记录
存储
数据信息,因此是不能直接将Tree存入DBMS,设计合适的Schema及其对应的CRUD算法是实现关系型
数据库
中
存储
树形结构的关键。 理想
中
树形结构应该具
在
数据库
中
储存树形结构
树是
表
示
层次结构的方法之一,因此可用于许多问题域。本文通过一个简单问题域
中
的示例,...通常,PDF文件在内存
中
表
示
为平衡树。 多种科学和游戏应用程序使用决策树,概率树,行为树;Flare可视化库(http://flare.pre
【mysql&算法】在
数据库
中
储存树形结构
对于树,可以仅
存储
父节点,然后每个列
表
都包含一个值,该值可以与顶点一起
存储
在
数据库
中
。这是最流行的
表
示
形式之一,也是最直观的
表
示
形式:
表
仅具有对自身的引用(图2)。然后,根节点NULL的父节点包含一个空值...
树形结构的
数据库
表
Schema设计
树形结构的
数据库
表
Schema设计:一种基于左、右值编码前序遍历的树形结构
数据库
表
Schema设计方案,消除了频繁的“递归”操作,提升了树形结构查询效率~
基础和管理
17,377
社区成员
95,128
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章