我試圖設計一個具有金字塔關係的數據庫。例如,這是我的數據:實現圖樹的最佳數據庫結構
好了,我怎麼都可以存儲這些數字,並保持它們之間的關係?
目前我是這樣做的:
// myTree
+----+------+--------+
| id | node | parent |
+----+------+--------+
| 1 | 8 | Null |
| 2 | 10 | 8 |
| 3 | 3 | 8 |
| 4 | 14 | 10 |
| 5 | 6 | 3 |
| 7 | 1 | 3 |
| 8 | 13 | 14 |
| 9 | 7 | 6 |
| 10 | 4 | 6 |
+----+------+--------+
但在這種情況下,我只能通過一個查詢選擇一個圖形的水平。雖然我需要選擇一個節點的整個分支。敵人examle:
$node = 14;
預期結果:
[8, 10, 14, 13]
注:節點是唯一的。
無論如何,我怎樣才能設計數據庫,使其通過一個查詢訪問所有級別?
點擊此鏈接管理MySQL中的分層數據http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ –
這是一個常見問題解答。請谷歌您的標題。 – philipxy
升級到MySQL 8.0或MariaDB 10.2,以便您可以使用遞歸CTE。 –