各位好,最近遇到一个树形结构的问题,想找一个效率高点的办法,因为数据量很大,只要能实现遍历,不管是前台,还是后台,只要效率高,就可以,数据表结构如下:ParentID PartNo LinkQty HasChild
1        A      1       True
1        B      2       True
1        C      4       True
A        A1     2       True
B        B1     23      True
C        E      3       True
B        E      5       True
......求一个遍历算法,递归也可以,但要考虑效率

解决方案 »

  1.   

    id   parentid ....
    1    -1
    2    -1
    3    1
    4    1
    5    2
    6    1
    7    2可以自然编号(id)为每条记录的唯一标志(包括每个节点即根或子)
    如果parentid的值为-1(0也可以)他就是根节点,如果是其他值,它的父节点的id 就等于他所存储的parentid的值
      

  2.   

    程序员大本营数据库有例题。
    就是NorthWind->Employees表结构一样
    所以更具微软的事例数据库
    你的表结构因该更改               
    ID , Name, LinkQty , ParentID
    1     A1               3     //代表父结点为ID=3
    2     A2               3 
    3     A                0     //0代表没有父结点
    4     B                0 
    5     B1               4       
    6     C1               4然后创建游标,这个游标指向所有父结点,
    循环游标,选出所有字结点。