各位大虾们帮我解决个小问题
我有个产品类型表,在这个产品类型表中可以分为父节点和子结点
但是我要取数据,取出来的数据要生成树状结构,这个要用递归来写,但是算法这一块,我有点儿头痛,想了好久,一直都没有想出来
表结构(我是个菜鸟,请各位给点儿源码吧,我努力了,但是确实写不出来,求助,各位大侠啦)
--产品类型表
create table productTypeTable (
pid int AUTO_INCREMENT primary key,
name varchar(50) not null,
descr varchar(255) null,
cno int not null,
grade int not null
);
测试数据:
insert into productTypeTable(name,descr,cno,grade) value('电器类','这个类别都是电器',0,1);
insert into productTypeTable(name,descr,cno,grade) values('食品类','这个类别是放的食品',0,1);
insert into productTypeTable(name,descr,cno,grade) values('家用电器','这个类别都是家用电器',1,2);
insert into productTypeTable(name,descr,cno,grade) values('公共设施电器','这个类别都公共设施电器',1,2);
insert into productTypeTable(name,descr,cno,grade) values('牛奶类','这个类别都牛奶',3,2);
insert into productTypeTable(name,descr,cno,grade) values('蒙牛牛奶类','这个类别都牛奶',5,3)
想得到生成数据树状图为: (以后打算把这个结果集放到下拉类表中,以树状的样式反应出来,现在很多的都是这么做的,)
电器类
家用电器
公共设施电器
食品类
牛奶类
蒙牛牛奶类
我有个产品类型表,在这个产品类型表中可以分为父节点和子结点
但是我要取数据,取出来的数据要生成树状结构,这个要用递归来写,但是算法这一块,我有点儿头痛,想了好久,一直都没有想出来
表结构(我是个菜鸟,请各位给点儿源码吧,我努力了,但是确实写不出来,求助,各位大侠啦)
--产品类型表
create table productTypeTable (
pid int AUTO_INCREMENT primary key,
name varchar(50) not null,
descr varchar(255) null,
cno int not null,
grade int not null
);
测试数据:
insert into productTypeTable(name,descr,cno,grade) value('电器类','这个类别都是电器',0,1);
insert into productTypeTable(name,descr,cno,grade) values('食品类','这个类别是放的食品',0,1);
insert into productTypeTable(name,descr,cno,grade) values('家用电器','这个类别都是家用电器',1,2);
insert into productTypeTable(name,descr,cno,grade) values('公共设施电器','这个类别都公共设施电器',1,2);
insert into productTypeTable(name,descr,cno,grade) values('牛奶类','这个类别都牛奶',3,2);
insert into productTypeTable(name,descr,cno,grade) values('蒙牛牛奶类','这个类别都牛奶',5,3)
想得到生成数据树状图为: (以后打算把这个结果集放到下拉类表中,以树状的样式反应出来,现在很多的都是这么做的,)
电器类
家用电器
公共设施电器
食品类
牛奶类
蒙牛牛奶类
所以,你只要在你的对象属性中加入一个
private ProductType parent;
显示的时候,根据parentId即可
代码自己写吧
如果不是的话,你可能需要写存储过程了另外你也可以第一次只载入第一层,点哪个再去查第二层的,就是要总是查数据库……
树型结构--这个对象还要包含一个自身对象的引用作为父节点
所以,你只要在你的对象属性中加入一个
private ProductType parent;
显示的时候,根据parentId即可
代码自己写吧
感觉还是不是很懂喃
我的数据库设计的有问题没有呀 楼上
我说了在对象中加入private ProductType parent;相应的你的数据库再加个字段来保留parentId字段即可
这种问题,只要对象设计明白了,数据库、代码只不过是把对象间关系表达出来就是了
特别是加字段呀,什么之类的,最麻烦