树形结构复制 在一张树形结构的表中有一个树形模板id name pid projectID(0表示模板)现在每建一个项目就会复制这份模板 怎样实现复制 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1 f1 0 02 f2 0 03 f11 1 04 f12 1 05 f111 3 0---复制上面的如下------6 f1 0 1(某个项目的ID)7 f11 6 1 8 f111 7 19 f12 6 110 f2 0 1 id name pid projectID1 f1 0 0 2 f2 0 0 3 f11 1 0 4 f12 1 0 5 f111 3 0 ---复制上面的如下------ 6 f1 0 1(某个项目的ID) 7 f11 6 1 8 f111 7 1 9 f12 6 1 10 f2 0 1 id是自动增加的,如果项目2又复制一次模板的数据那表的数据就应该是:id name pid projectID1 f1 0 0 2 f2 0 0 3 f11 1 0 4 f12 1 0 5 f111 3 0 6 f1 0 1(某个项目的ID) 7 f11 6 1 8 f111 7 1 9 f12 6 1 10 f2 0 111 f1 0 2(某个项目的ID) 12 f11 11 2 13 f111 12 2 14 f12 11 2 15 f2 0 2 表结构有问题如果当初需求就是这样很明显,应该将projectID也设为主键的如果是这样就不必映射id,pid了就像你给的数据id自增了,pid还要使用某种方法映射,很累如果可以的话,很简单,把projectID和表中原主键设为联合主键,就OK了 不明白,我现在就是不知道pid该怎样对应上去 如果把projectID也设为主键如下:id name pid projectID1 f1 0 0 2 f2 0 0 3 f11 1 0 4 f12 1 0 5 f111 3 0 1 f1 0 1 2 f2 0 1 3 f11 1 1 4 f12 1 1 5 f111 3 11 f1 0 2 2 f2 0 23 f11 1 2 4 f12 1 2 5 f111 3 2 lz明白没 ^_^ 那你就只能以新增的id为根,重新画树,然后在读整棵树,然后insert 能不能贴个示例,insert的时候不知道pid怎么处理 ... 这个树不是你自己画的??你那个怎么弄,这个就这么弄咯~~不会让我帮你写代码吧 ^o^明白原来就一点点来吧 lz这也是学习的过程~~^_^ 给楼主简单提个思路:可以先把要复制的项目的结构放到表变量或者临时表中,然后根据表中现有数据的最大ID设置一个将插入数据的ID,然后在构造的表变量里面根据这个ID构造复制后项目各个节点的ID,然后插进正式数据表。可以用事务来保证数据正确。 spring 配置c3p0数据库连接池, 该项目跑两天就出现该问题, 该问题貌似无解 java 类型转换问题 Struts标签<html:form> 问题 servlet 中 新建文件夹问题 低手请教:java怎样检索一个网站? spring3MVC 页面转移是显示资源不存在 使用jfreechart生成图片的中文问题!!!!!急!!!! weblogic7+jbuilder7发布jsp页面之简单问题。。。。。 请问在TOMCAT4.1.18服务器+JDK1.4上怎么安装JDBC2.0? 收信时pop3端口出错?(在线等待) 初学Struts的意见 求救 JSF页面返回空白
2 f2 0 0
3 f11 1 0
4 f12 1 0
5 f111 3 0---复制上面的如下------6 f1 0 1(某个项目的ID)
7 f11 6 1
8 f111 7 1
9 f12 6 1
10 f2 0 1
id name pid projectID
1 f1 0 0
2 f2 0 0
3 f11 1 0
4 f12 1 0
5 f111 3 0 ---复制上面的如下------ 6 f1 0 1(某个项目的ID)
7 f11 6 1
8 f111 7 1
9 f12 6 1
10 f2 0 1
那表的数据就应该是:id name pid projectID
1 f1 0 0
2 f2 0 0
3 f11 1 0
4 f12 1 0
5 f111 3 0 6 f1 0 1(某个项目的ID)
7 f11 6 1
8 f111 7 1
9 f12 6 1
10 f2 0 1
11 f1 0 2(某个项目的ID)
12 f11 11 2
13 f111 12 2
14 f12 11 2
15 f2 0 2
如果可以的话,很简单,把projectID和表中原主键设为联合主键,就OK了
如果把projectID也设为主键如下:id name pid projectID
1 f1 0 0
2 f2 0 0
3 f11 1 0
4 f12 1 0
5 f111 3 0 1 f1 0 1
2 f2 0 1
3 f11 1 1
4 f12 1 1
5 f111 3 1
1 f1 0 2
2 f2 0 2
3 f11 1 2
4 f12 1 2
5 f111 3 2
lz明白没 ^_^
那你就只能以新增的id为根,重新画树,然后在读整棵树,然后insert
... 这个树不是你自己画的??你那个怎么弄,这个就这么弄咯~~不会让我帮你写代码吧 ^o^明白原来就一点点来吧 lz这也是学习的过程~~^_^
可以先把要复制的项目的结构放到表变量或者临时表中,然后根据表中现有数据的最大ID设置一个将插入数据的ID,然后在构造的表变量里面根据这个ID构造复制后项目各个节点的ID,然后插进正式数据表。
可以用事务来保证数据正确。