首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

一个树形结构的数据库设计有关问题

2012-01-02 
一个树形结构的数据库设计问题unit表:ID(自动编号),cityID,unitname,city,province其他字段..unit表中的记

一个树形结构的数据库设计问题
unit表:   ID(自动编号),cityID,unitname,city,province   其他字段..

unit表中的记录是通过WEB页面提交的
比如我提交的内容到数据库中是这样的
IDcityID     unitname     city       province           provinceID
1410500     xxx单位0     周口市       河南省               410000
2421600     xxx单位1     安阳市       河北省420000
3421600     xxx单位2     安阳市       河北省420000

现在又要在WEB页面中以树形结构显示出来

请教各位这样设计表有没有错,请指正,树形结构在JSP中如何实现

我在树形结构中要显示的是如下效果
比如:
--河北省
--------安阳市
--------------xxx单位1
--------------xxx单位2
--------XXX区
--河南省
--------周口市
-------------xxx单位0



[解决办法]
一般是一行。作成联动方式。
[解决办法]
----创建测试数据
declare @t table(ID int,cityID varchar(10),unitname varchar(15),city varchar(15), province varchar(15),provinceID int)
insert @t
select 1, '410500 ', 'xxx单位0 ', '周口市 ', '河南省 ', '410000 ' union all
select 2, '421600 ', 'xxx单位1 ', '安阳市 ', '河北省 ', '420000 ' union all
select 3, '421600 ', 'xxx单位2 ', '安阳市 ', '河北省 ', '420000 '

----查询
SELECT province FROM (
select top 100 percent * from(
select distinct province,provinceID,cityID,1 as OrderID from @t as a
union all
select distinct replicate( ' ',10) + city,provinceID,cityID,2 from @t
union all
select replicate( ' ',20) + unitname,provinceID,cityID,3 from @t) as a
order by provinceID,cityID,OrderID
) AS t


/*结果
province
-----------------------------------
河南省
周口市
xxx单位0
河北省
安阳市
xxx单位1
xxx单位2
*/
[解决办法]
感覺你這樣不太好。你可以參考MRP中BOM表設計。。。
[解决办法]
其实设计成树形结构的方法很多
似乎SQL版也提过类似的问题,楼主可以找下
[解决办法]
可以看作bom展開問題,寫個函數就可以
[解决办法]
楼主的表设计是不合理的,这样维护很麻烦。
我给出下面的表设计,供参考。
Tb_province
provinceIDprovinceparentID
410000河南省0
420000河北省0

Tb_city
cityIDcityparentID
1410500周口市410000
2421600 安阳420000

Tb_unit
unitIDunitnameparentID
1xxx单位0 1410500
2xxx单位1 2421600
3xxx单位2 2421600


[解决办法]
ID号按树型结构来编码,
[解决办法]
up
[解决办法]
就用身份证的编码就可以啦吧,省为两位,市为四位,县为六位,
单位为前六位地区编码加单位的个数,三位一般就可以啦

热点排行