background image

 
Food : 食物
Fruit : 水果
Red : 红色
Cherry: 樱桃
Yellow: 黄色
Banana: 香蕉
Meat : 肉类
Beef : 牛肉
Pork : 猪肉
 
三、实现
1、毗邻目录模式(adjacency list model)
这种模式我们经常用到,很多的教程和书中也介绍过。我们通过给每个节点增加一个属性 
parent 来表示这个节点的父节点从而将整个树状结构通过平面的表描述出来。根据这个原
则,例子中的数据可以转化成如下的表:
以下是代码:
代码如下:
 
+-----------------------+
| parent | name |
+-----------------------+
| | Food |
| Food | Fruit |
| Fruit | Green |
| Green | Pear |
| Fruit | Red |
| Red | Cherry |
| Fruit | Yellow |
| Yellow | Banana |
| Food | Meat |
| Meat | Beef |
| Meat | Pork |
+-----------------------+
 

 

我们看到 Pear 是 Green 的一个子节点,Green 是 Fruit 的一个子节点。而根节点'Food'没有

 

父节点。为了简单地描述这个问题,这个例子中只用了 name

 

来表示一个记录。在实际的

数据库中,你需要用数字的 id 来标示每个节点,数据库的表结构大概应该像这样:id, 
parent_id, name, descrīption。
有了这样的表我们就可以通过数据库保存整个多级树状结构了。
显示多级树,如果我们需要显示这样的一个多级结构需要一个递归函数。