【发布时间】:2016-11-28 07:00:50
【问题描述】:
我正在尝试设计一个具有金字塔关系的数据库。例如这是我的数据:
那么,我怎样才能既存储这些数字又保持它们的关系呢?
目前我是这样做的:
// 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 |
+----+------+--------+
但在这种情况下,我只能通过一次查询选择一级图表。虽然我需要为节点选择整个分支。敌人的例子:
$node = 14;
预期结果:
[8, 10, 14, 13]
注意:节点是唯一的。
无论如何,如何设计数据库以使其通过一个查询访问所有级别?
【问题讨论】:
-
点击Managing Hierarchical Data in MySQL mikehillyer.com/articles/managing-hierarchical-data-in-mysql的链接
-
这是一个常见问题解答。请用谷歌搜索你的标题。
-
升级到 MySQL 8.0 或 MariaDB 10.2,以便您可以使用递归 CTE。
标签: mysql sql database-design relational-database