软件的中树形结构如何建立表啊~~我的软件里有一颗树,用户可以自己维护,随意添加兄弟节点或者孩子节点,那么我的数据库该如何设计呢,才能满足这种让用户自己维护这颗树??

解决方案 »

  1.   

    id ParentID Name这种结构就可以了
      

  2.   

    建议不要存数据库,存为XML文件更合适!数据库反应的是二维关系,Xml天然放映的是树形关系
      

  3.   


    那我从数据库中怎么取出来呢?递归还是for 给点代码示范一下行么
      

  4.   

    代码
    http://blog.sina.com.cn/s/blog_4961e0780100bl34.html
      

  5.   

    你要在数据库中建树型结构表
    最好使用 sql server 2005 和以上的版本,支持递归,查询起来方便
      

  6.   

    在数据库中取的时候使用递归
    BindTreeView(string parId)
    {
    DATASET DS = GETBINDDATA(SELECT * FROM TABLE WHERE PAR_ID = parId);
    // 写绑定方法// 递归调用下一级
    BindTreeView(DS.TABLES[0].ROWS[0]["ID"].TOSTRING());
    }
      

  7.   

    放在xml里查询不方便,很难进行复杂的操作,而且数据量大的话会很慢,而且你不能通过sql来进行关联xml和数据库中的数据。
    对于xml的使用,我认为,一般除了个性化配置等一些小的,不太重要的,相对独立的,或交换数据之外,尽量不要使用xml存储。
      

  8.   

    id    name   falgid
     1    sss      0
     2    www      0
     3    qqq      0
     4    aaa      1
     5    aaa      1
     6    aaa      1
     7    aaa      2
     8    aaa      2
    这样应该明白了吧
      

  9.   


    这个观点大部分不能苟同:
    “xml查询不方便”,只是我们不大熟悉xml的查询方法,出来那些基本的方法之外,net提供了XPath,里面包含了类型转换、游标访问、聚合函数等类似sql的信息,也就是说,sql高级查询能做到的功能,xml完全可以做到,甚至效率更好!至于文件太大,访问效率会有影响,这个倒是现实!不过,net提供类似流模式的读取方式XmlReader,效率大为提高!现在,通信领域比较流行的61850通信协议,完全是采用xml进行数据交互,大型应用,一个文件都是2M以上,效率并没有受到影响!否则,IEC就不会用xml做为载体了!其实,xml有个sql不能胜任的领域:如果嵌套关系复杂,达到5、6层以上,sql表达就非常吃力,即使弄出来,使用者也会把自己弄晕!而这些恰恰是xml发挥长处的地方!回到lz的主题:如果数据结构不复杂,不超过3层,两个都可以;如果超过3层关系,我还是建议用xml!