树状图存储
① 如何存储很多个树状结构数据,
一个父节点有多个子节点,一个子节点又有多个子子节点
② 怎样在 MySQL 表中存储树形结构数据
在 MySQL 表中存储树形结构数据:
一般比较普遍的就是四种方法:(具体见 SQL Anti-patterns这本书)
Adjacency List:每一条记录存parent_id
Path Enumerations:每一条记录存整个tree path经过的node枚举
Nested Sets:每一条记录存 nleft 和 nright
Closure Table:维护一个表,所有的tree path作为记录进行保存。
③ 文档型数据库设计模式:如何存储树形数据
在数据库中存储树形结构的数据,这是一个非常普遍的需求,典型的比如论坛系统的版块关系。在传统的关系型数据库中,就已经产生了各种解决方案。 此文以存储树形结构数据为需求,分别描述了利用关系型数据库和文档型数据库作为存储的几种设计模式。 A.关系型数据库设计模式1idnameparent_id1ANULL2B13C14D2 上图表示了传统的设计方法之一,就是将树形结构的每一个结点作为关系型数据库中的一行进行存储,每一个结点保存一个其父结点的指针。 优点:结构简单易懂,插入修改操作都很简单 缺点:如果要获取某个结点的所有子结点,将是一件很恶心的事 B.关系型数据库设计模式2idnameparent_ 上图在模式1的基础上多了两列,left和right,相当于btree中的左右分支,分别存储了左右分支结点的最大值和最小值。 优点:要查找一个结点的子结点很容易,只需要做一个范围查询就行了(比如B节点的子结点,只需要查询 id >=2 && id<=5) 缺点:由于树结构存在在这里面了,所以添加或修改已存在结点将可能产生连锁反应,操作过于复杂 C.文档型数据库设计模式1 { "name": "A", "children": [ {"name": "B", "children": [{"name": "D"}]}, {"name": "C"}]} 将整个树结构存成一个文档,文档结构既树型结构,简明易懂。
④ 有没有根据文件夹树状结构自动生成一个树状图的软件
一、 新建设计数据库文件 在WINDOWS 95/98或NT界面下双击Protel 99 图标,点击File(文件)中new项,新建设计 数据库。 在Browse选项中选取需要存储的文件夹,然后点击OK即可建立自己的设计数据库。 1、设计组(Design Team) 我们可以先在Design Team 中设定设计小组成员,Protel 99可在一个设计组中进行协同 设计,所有设计数据库和设计组特性都由设计组控制。定义组成员和设置他们的访问权 限都在设计管理器中进行,确定其网络类型和网络专家独立性不需要求助于网络管理员 。 无限制数量的设计组成员能同时访问相同的设计数据库。每个组成员都能看到什么文件 当前是打开的以及谁在编辑,并能锁定文件以防止意外重写。 访问设计数据库可以通过建立设计组成员和指定其权限来控制。设计组成员建立在成员 文件夹中。在成员文件夹中单击右键就会弹出浮动菜单,选择新成员。 为保证设计安全,为管理组成员设置一个口令。这样如果没有注册名字和口令就不能打 开设计数据库。 提示:成员和成员权限只能由管理员建立。 2、回收站( Recycle Bin) 相当于Windows 中的回收站,所有在设计数据库中删除的文件,均保存在回收站中,可 以找回由于误造作而删除的文件. 3、设计管理器(document.) 所有Protel99设计文件都被储存在唯一的综合设计数据库中,并显示在唯一的综合设计 编辑窗口。在Protel99中与设计的接口叫设计管理器。使用设计管理器,可以进行对设计文件的管理编辑、设置设计组的访问权限和监视对设计文件的访问。 组织设计文件 过去组织和管理40个或更多的原理图、PCB、Gerber、Drill、BOM和DRC文件,要花 费几天的时间,而Protel99把设计文件全部储存在唯一的设计数据库。 在设计数据库内组织按分层结构文件夹建立的文件 显示在右边的个人安全系统设计数据库有一文件夹叫设计文件,这个文件夹中是主设计文件(原理图和PCB),还有许多的子文件夹,包括了PCB装配文件、报告和仿真分析。这里对在设计数据库中创建文件夹的分 层深度没有限制。 设计数据库对存储Protel设计文件没有限制 你能输入任何类型的设计文件进入数 据库,如在MS Word书写的报告、在MS Excel准备的费用清单和AutoCAD中制的机械图。简单双击设计数据库里的文件图标,在适当的编辑器打开文件,被更新的文件自动地保存到设计数据库。MS Word和Excel文件可以在设计管理器中直接编辑。 提示:在文件夹上单击右键会显示浮动菜单,然后选择在设计数据库新建文件。 在综合设计数据库中用Protel99的设计管理器管理设计文件是非常轻松的。设计管 理器的工作就象MS Windows的文件管理器一样,可用它来导航和组织设计数据库里文件 。使用设计管理器在设计数据库创建分层结构的文件夹,使用标准文件操作命令来组织 这些文件夹内设计文件。 设计管理器的心脏就是左边的导航面板。面板显示的树状结构是大家熟悉的Protel软件 特性。在Protel99中,这个树不仅仅显示的是一个原理图方案各文件间的逻辑关系,它 也显示了在设计数据库中文件的物理结构。 在导航树中活跃的文件夹是PCB装配文件夹。如同Windows文件管理器,设计管理器在右 边显示这个文件夹的内容。 设计管理器与Windows文件管理器的不同之处是在右边还显示已经打开的文件。 打开文件 只要在导航树中单击所要编辑的文件名,或者双击右边文件夹中的图标。 在设计数据库中打开的各个文件用卡片分隔显示在同一个设计编辑窗口,使得非常容易 知道当前工作到哪里,特别在大的设计中。要一起观察不同的文件可以将设计编辑窗口拆分为多区域。 二、打开和管理设计数据库 Protel 99 包括许多设计例子,我们下面可以举例说明。 选择文件打开菜单\Design Explorer 99\Example \folder,点击photoplotter.ddb文 件,左侧窗口呈现树状结构。 点”+”呈现下一层子目录或文件,点”-”将关闭此文件夹.点Photohead.pcb 文件 ,PCB版图将出现,点
⑤ java用什么存储树形结构的数据啊 尤其是多重树形结构
//将楼上的,稍改一下,添加一个
public class TreeNode {
/**节点主键**/
private String id;
/**节点名称**/
private String text;
private Long itemType; //区别 章节--要点--阶段--问题
/**子节点**/
private TreeNode[] children;
}
⑥ 数据库中如何实现对树形结构的存储
用递归或外部程序组织循环,具体跟你的数据库表结构有关
⑦ 怎么在数据库中保存一棵树形结构请设计出数据库
3个字段就可以了
节点本身的 ID,节点内容Content,父节点 ParentID;
当 ParentID = ID 为根节点;
查找某个节点的孩子
Select ID,Content,ParentID
Form tblTree
Where ParentID=X
查找某个节点的老子
SQL 语句嵌套下
Where ID=ParentID-X
⑧ 请教如何用数据库保存树形结构的数据
在表里建立两个字段,一个是本记录ID,一个是本记录所对应的父节点的信息所在的ID,如下:
id
int,
parentid
int,
....
⑨ 怎样将spss做的聚类分析树状图保存为jpg格式或其他的图形格式
很简单,只要用个截图的软件,譬如QQ,Hypersanp等把它作为图片抓下列就行了。
⑩ 树形结构存储方法
一般都是加一个父节点的字段。 不过关联查询还是挺麻烦的,oracle的话还好点