在Mysql中为多个根存储分层数据的最佳方法是什么?

时间:2013-05-10 18:03:30

标签: mysql hierarchical-data nested-set-model

我已经阅读了很多博客和链接来保存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:)

1 个答案:

答案 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