我已经阅读了很多博客和链接,以将分层数据保存在 mysql 数据库中,例如嵌套集模态*传递闭包模态*子父层次结构。但是我有点困惑,任何人都可以建议我为多个根存储分层结构的最佳方法是什么。
e.g
Root1
|
|---Child 1
| |--Child 1 of 1
| |--Child 2 of 2
|
Root 2
|
|--Child 2
| |--Child 1 of 2
| |--Child 2 of 2
提前感谢:)
我已经阅读了很多博客和链接,以将分层数据保存在 mysql 数据库中,例如嵌套集模态*传递闭包模态*子父层次结构。但是我有点困惑,任何人都可以建议我为多个根存储分层结构的最佳方法是什么。
e.g
Root1
|
|---Child 1
| |--Child 1 of 1
| |--Child 2 of 2
|
Root 2
|
|--Child 2
| |--Child 1 of 2
| |--Child 2 of 2
提前感谢:)
当您使用表来存储层次结构时,层次结构中的每个对象都需要一个父对象。所以你的节点可能有这些列:
nodeid int not null not zero the id of the node in this row
parentid int not null, but can be zero the id the node's parent
nodename varchar the node's name
etc etc. other attributes of the node
使用此表布局,任何无父节点(即任何带有 的节点parentid = 0
)都是根节点。您可以根据应用程序的需要在表中包含任意数量的这些。
您展示的示例可能如下所示:
nodeid parentid nodename
------ -------- --------
1 0 Root1
2 1 Child 1
3 2 Child 1 of 1
4 2 Child 2 of 1
5 0 Root2
6 5 Child 2
7 6 Child 1 of 2
8 6 Child 2 of 2