数据库查询出来的分类,
有三个属性id
parentId
name现在的做法是递归,如果parentId是null,就查询他的子分类,子分类再递归,直到子分类查询结果为空返回上一层递归。
这样做的话,
查询数据库的次数非常多效率很低。
我想有没有办法只查询一次,
然后通过算法来构造数?或者说这种方式 有没有比较成熟的通用的解决办法?

解决方案 »

  1.   

    难道你用的数据库没有名字?Oracle? MySQL? MS SQL Server? or ...由于现在所使用的数据库都是关系模型的,而非层次模型的。在关系数据库中处理层次型数据还是比较麻烦的。Oracle 中可以使用用于层次查询的 START WITH, CONNECT BY 子句也可以看看 MySQL 网站上的一篇文章,介绍了如何在 MySQL 中采用邻接列表模型和前序遍历树模型处理层次型
    数据,其中的思想也可以用于其他数据库中。
    http://dev.mysql.com/tech-resources/articles/hierarchical-data.html
      

  2.   

    数据库的名字都不知道  怎么帮!我只会sqlserver 2005