[英]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 sets
和adjacency 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.