软件的中树形结构如何在数据库里建立表啊~~ 软件的中树形结构如何建立表啊~~我的软件里有一颗树,用户可以自己维护,随意添加兄弟节点或者孩子节点,那么我的数据库该如何设计呢,才能满足这种让用户自己维护这颗树?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 id ParentID Name这种结构就可以了 建议不要存数据库,存为XML文件更合适!数据库反应的是二维关系,Xml天然放映的是树形关系 那我从数据库中怎么取出来呢?递归还是for 给点代码示范一下行么 代码http://blog.sina.com.cn/s/blog_4961e0780100bl34.html 你要在数据库中建树型结构表最好使用 sql server 2005 和以上的版本,支持递归,查询起来方便 在数据库中取的时候使用递归BindTreeView(string parId){DATASET DS = GETBINDDATA(SELECT * FROM TABLE WHERE PAR_ID = parId);// 写绑定方法// 递归调用下一级BindTreeView(DS.TABLES[0].ROWS[0]["ID"].TOSTRING());} 放在xml里查询不方便,很难进行复杂的操作,而且数据量大的话会很慢,而且你不能通过sql来进行关联xml和数据库中的数据。对于xml的使用,我认为,一般除了个性化配置等一些小的,不太重要的,相对独立的,或交换数据之外,尽量不要使用xml存储。 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这样应该明白了吧 这个观点大部分不能苟同:“xml查询不方便”,只是我们不大熟悉xml的查询方法,出来那些基本的方法之外,net提供了XPath,里面包含了类型转换、游标访问、聚合函数等类似sql的信息,也就是说,sql高级查询能做到的功能,xml完全可以做到,甚至效率更好!至于文件太大,访问效率会有影响,这个倒是现实!不过,net提供类似流模式的读取方式XmlReader,效率大为提高!现在,通信领域比较流行的61850通信协议,完全是采用xml进行数据交互,大型应用,一个文件都是2M以上,效率并没有受到影响!否则,IEC就不会用xml做为载体了!其实,xml有个sql不能胜任的领域:如果嵌套关系复杂,达到5、6层以上,sql表达就非常吃力,即使弄出来,使用者也会把自己弄晕!而这些恰恰是xml发挥长处的地方!回到lz的主题:如果数据结构不复杂,不超过3层,两个都可以;如果超过3层关系,我还是建议用xml! 怎么修改dataGridView某个单元格的值? C# 字符处理的问题 winform里如何判断进程是否等于devenv.exe 下载远程图像出错 Oracle 操作DataSet总是报错:遇到不支持的 Oracle 数据类型 USERDEFINED!!! c# 控件无法在调试时显示 问一个webservice和winform的问题! 怎么把ListViewItem中的数据写入文件 小问题!巨郁闷!!! 有谁能给我讲解一下SNMP协议和MIB数据库方面见解???急 讨论:实时和动态保存信息 C#关于统计和汇总
那我从数据库中怎么取出来呢?递归还是for 给点代码示范一下行么
http://blog.sina.com.cn/s/blog_4961e0780100bl34.html
最好使用 sql server 2005 和以上的版本,支持递归,查询起来方便
BindTreeView(string parId)
{
DATASET DS = GETBINDDATA(SELECT * FROM TABLE WHERE PAR_ID = parId);
// 写绑定方法// 递归调用下一级
BindTreeView(DS.TABLES[0].ROWS[0]["ID"].TOSTRING());
}
对于xml的使用,我认为,一般除了个性化配置等一些小的,不太重要的,相对独立的,或交换数据之外,尽量不要使用xml存储。
1 sss 0
2 www 0
3 qqq 0
4 aaa 1
5 aaa 1
6 aaa 1
7 aaa 2
8 aaa 2
这样应该明白了吧
这个观点大部分不能苟同:
“xml查询不方便”,只是我们不大熟悉xml的查询方法,出来那些基本的方法之外,net提供了XPath,里面包含了类型转换、游标访问、聚合函数等类似sql的信息,也就是说,sql高级查询能做到的功能,xml完全可以做到,甚至效率更好!至于文件太大,访问效率会有影响,这个倒是现实!不过,net提供类似流模式的读取方式XmlReader,效率大为提高!现在,通信领域比较流行的61850通信协议,完全是采用xml进行数据交互,大型应用,一个文件都是2M以上,效率并没有受到影响!否则,IEC就不会用xml做为载体了!其实,xml有个sql不能胜任的领域:如果嵌套关系复杂,达到5、6层以上,sql表达就非常吃力,即使弄出来,使用者也会把自己弄晕!而这些恰恰是xml发挥长处的地方!回到lz的主题:如果数据结构不复杂,不超过3层,两个都可以;如果超过3层关系,我还是建议用xml!