當前位置:首頁 » 存儲配置 » 樹形數據存儲表結構設計

樹形數據存儲表結構設計

發布時間: 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
……

熱點內容
阿里雲怎麼領伺服器 發布:2024-10-09 05:17:53 瀏覽:816
c語言可逆素數 發布:2024-10-09 05:13:44 瀏覽:920
班級采訪問題 發布:2024-10-09 04:45:44 瀏覽:497
單人地圖腳本 發布:2024-10-09 04:45:32 瀏覽:754
易語言cf自瞄源碼 發布:2024-10-09 04:36:14 瀏覽:121
安卓和蘋果哪個更難修理 發布:2024-10-09 04:36:12 瀏覽:26
黎明覺醒安卓什麼配置 發布:2024-10-09 04:32:05 瀏覽:127
助手autojs腳本 發布:2024-10-09 04:31:40 瀏覽:186
sql判斷今天 發布:2024-10-09 04:19:35 瀏覽:943
拆分視頻需要哪些配置 發布:2024-10-09 04:06:39 瀏覽:912