当前位置:首页 » 存储配置 » 树形数据存储表结构设计

树形数据存储表结构设计

发布时间: 2022-07-08 10:07:09

Ⅰ 怎样设计树形目录的数据库用SQL

首先你要确定你所使用的DBMS产品,因为在ORACLE和SQL SERVER等DBMS的SQL语法有局部的不同,但大体上语句是一样的。
CREATE TALBE tmpDB (
tid int identity(1,1) primary key, --表主键,可以不用加not null一般使用了primary key就可默认为not null
tname varchar(100) not null, --节点名称
fatherID int --父节点ID
)
GO

生成树形数据结构
select
*
from
table
start with id = ?
connect by prior id = ?

Ⅱ 如何在数据库中存储一棵树

假设有如下一棵树:

这种结构下,如果查询某一个节点的直接子节点,十分容易,比如要查询D节点的子节点。

Ⅲ 如何设计数据库树状数据结构

就是表需要有一个
主键
,比如
ID
然后还有一个字段,叫
父编号,
比如
PID
再加上其他的字段,剩下的就是写
SQL
的事情了。
例如下面这个表,就是一个可以做树状的。
CREATE
TABLE
test_tree
(
test_id
INT,
pid
INT,
test_val
VARCHAR(10),
PRIMARY
KEY
(test_id)
);

Ⅳ 类似于树状菜单结构的数据模型应该如何设计表结构呢

树状菜单每个有子节点的节点都做成独立子表,可以很好反应出一对多的关系

Ⅳ 如何根据一个数据的逻辑结构设计存储结构

数据的逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据。它与数据的存储无关,是独立于计算机的。数据的逻辑结构分为线性结构和非线性结构,线性表是典型的线性结构;集合、树和图是典型的非线性结构。

  • 集合结构中的数据元素之间除了 “同属于一个集合”的关系外,别无其他关系。

  • 线性结构结构中的数据元素之间只存在一对一的关系。

  • 树形结构结构中的数据元素之间存在一对多的关系。

  • 图状结构或网状结构结构中的数据元素之间存在多对多的关系。

扎实的数据结构与算法功底,能让我们站在更高的角度去思考代码、写出性能更优的程序,能让我们更快速地学习上手各种新技术(比如人工智能、区块链等),也能让我们敲开更高级编程领域的大门。数据结构与算法更是各大名企面试题中的常客,如果不想被行业抛弃、想进入更大的名企、在IT道路上走得更远,掌握数据结构与算法是非常有必要。

课程特色

1、MJ和名企算法大咖董甫耸共同研发设计,确保课程的系统全面性、高含金量。

2、结合大量企业真实案例讲解,由浅入深地带着同学们敲出每个数据结构每个算法的每一行代码实现,一起感受数据结构与算法的魅力。

3、全程直播授课,在线答疑,实时互动,让学员不再有后顾之忧。

4、结识学习伙伴,相互监督,疑问解答,彼此分享,共同学习。

Ⅵ 请教,关于一个树形的数据结构怎么设计

这是book的题吧,楼主好好整, NodeList获取节点的子节点列表

Ⅶ c# web.如何设计树状数据库(类似传销系统)

有两种方法:
一个是用SQL Server内建的XML数据类型支持(需要2005版本以上),因为XML天生就是最适合做树状数据存储的了,建立出来的数据直观方便,可以应用于任何平台任何程序,比如:
<A>
<B>
<E/>
<F/>
<G/>
</B>
<C>
<H/>
<I/>
</C>
</A>

当然了,要用这种方法首先得有一些XML,XPATH方面的知识。

另外一种方法依然是用传统的数据库表格来做,实际也超级简单,表格的结构这样设计:

ID | 会员名 | 下线会员
-------------------------------
1 A B
2 A C
3 A D
4 B E
5 B F
6 B G
7 C H
8 C I

如果你想把会员信息和会员关系都放在同一个表里面,比如会员姓名等东西,那么需要把“下线会员”这一列改成“上线会员”:

ID | 会员名 | 上线会员 | 会员姓名 | 。。。
-------------------------------
1 A NULL
2 B A
3 C A
4 D A
5 E B
6 F B
7 G B
8 H C
9 I C

然后写SQL查询语句的时候如果要把所有会员的下线包括下线的下线列出来,需要用到Recursive(递归)的知识,也是数据库的经典问题了,随便网上查一下一大堆。

Ⅷ 文档型数据库设计模式:如何存储树形数据

在数据库中存储树形结构的数据,这是一个非常普遍的需求,典型的比如论坛系统的版块关系。在传统的关系型数据库中,就已经产生了各种解决方案。 此文以存储树形结构数据为需求,分别描述了利用关系型数据库和文档型数据库作为存储的几种设计模式。 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"}]} 将整个树结构存成一个文档,文档结构既树型结构,简明易懂。

Ⅸ 如何设计树状结构数据表

举个例子吧,我用的表结构是这样的,你可以参考下名称类型约束条件 说明
type_id int 无重复 类别标识,主键
type_name char(50) 不允许为空 类型名称,不允许重复
type_father int 不允许为空 该类别的父类别标识,如果是顶节点的话设定为某个唯一值
type_layer char(6) 限定3层,初始值为000000 类别的先序遍历,主要为减少检索数据库的次数按照这样的表结构,我们来看看上面例子记录在表中的数据是怎样的:type_id type_name type_father type_layer
1 总类别 0 000000
2 类别1 1 010000
3 类别1.1 2 010100
4 类别1.2 2 010200
5 类别2 1 020000
6 类别2.1 5 020100
7 类别3 1 030000
8 类别3.1 7 030100
9 类别3.2 7 030200
10 类别1.1.1 3 010101
……现在按type_layer的大小来检索一下:SELECT * FROM Type_table_2 ORDER BY type_layer列出记录集如下:type_id type_name type_father type_layer
1 总类别 0 000000
2 类别1 1 010000
3 类别1.1 2 010100
10 类别1.1.1 3 010101
4 类别1.2 2 010200
5 类别2 1 020000
6 类别2.1 5 020100
7 类别3 1 030000
8 类别3.1 7 030100
9 类别3.2 7 030200
……

热点内容
javaoracle 发布:2024-10-09 07:23:32 浏览:559
安卓系统总是被杀后台怎么办 发布:2024-10-09 07:11:31 浏览:304
花雨庭服务器如何全屏 发布:2024-10-09 06:39:28 浏览:213
密码查看器怎么使用 发布:2024-10-09 06:38:55 浏览:495
sqlrownum 发布:2024-10-09 06:28:53 浏览:383
F模块驱动器编译错误 发布:2024-10-09 06:06:21 浏览:636
脚本亚索集锦 发布:2024-10-09 05:53:30 浏览:877
安卓手机格式化后为什么打不开 发布:2024-10-09 05:52:58 浏览:511
云服务器可以超级计算机吗 发布:2024-10-09 05:51:33 浏览:17
php基本语法手册 发布:2024-10-09 05:34:04 浏览:819