我已经阅读了很多博客和链接来保存mysql数据库中的分层数据,例如嵌套集模态 * 传递性Clousure Modal * Child Parent Hierchy 。但我有点困惑可以任何身体请告诉我什么是存储多个根的层次结构的最佳方法。
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
感谢adavance:)
答案 0 :(得分:0)
使用表来存储层次结构时,层次结构中的每个对象都需要父级。因此,您的节点可能包含以下列:
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