簡體   English   中英

數據庫中內容的無限嵌套

[英]Limitless nesting of content in database

我有一些看起來像這樣的數據:
1:活動
2:事件1
3:事件1.1
4:賽事2
5:事件2.2
6:事件2.2.1
7:事件2.2.1.1
8:事件2.2.1.2
9:事件2.2.1.3
10:事件2.2.1.3.1
11:賽事3
12:賽事4
13:事件4.1

事件1、2、3和4將全部嵌套在“事件”下事件1.1將嵌套在事件1等下,等等。

如何將其存儲在數據庫的同一表中? 我可以再輸入一個包含其ID的字段嗎?

看起來像這樣:

領域
ID(事件ID)
名稱(事件名稱)
ids_to_include(此事件內發生的事件)

此(示例)數據最多嵌套4級(2.2.1.3.1)。 但是在我看來,我正在考慮歷史數據,在歷史數據中,每個事件都具有更多子事件,因此嵌套需要是無限的。 我並不想創建一個新的表中的每個歷史事件的“類型”,我寧願只是長期周期 (就像二戰:1939-1945)一個表,就沒有嵌套和事件 ,將有根據需要嵌套。

還是我要以完全錯誤的方式進行此操作? 謝謝。

有一些模型可以將層次結構數據存儲在關系表中,其中最常用的兩個是nested setsadjacency list

根據要針對這些模型運行的查詢的類型,這兩種方法都可以提高效率。

MySQL ,鄰接列表在某種程度上很難查詢,因為它需要MySQL缺乏但仍可能的集合遞歸。

請參閱我的博客中的條目,以比較這兩種模型:

您cad指定對父元素的前導鍵引用:

Id    Name        ParentId
==========================
 1    Events      null
 2    Event 1     1
 3    Event 1.1   2
 4    Event 2     1
 5    Event 2.2   4
 . . .

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM