JSP实现树型组织架构(1)--需求分析和数据库

发表于:2007-07-04来源:作者:点击数: 标签:
本组织架构模组实现的功能是,显示一个树型的公司组织架构模式,可以在最后一层的每一层添加部门.也可以删除任意部门,如果删除带子部门的部门,那么,其所属子部门一起被删除.如, 总经理 制造处 制造一部 制造一课 产品工程部 品保处 I QC FQC 管理处 管理部 采购
本组织架构模组实现的功能是,显示一个树型的公司组织架构模式,可以在最后一层的每一层添加部门.也可以删除任意部门,如果删除带子部门的部门,那么,其所属子部门一起被删除.如,

总经理

制造处

制造一部

制造一课

产品工程部

品保处

IQC

FQC

管理处

管理部

采购课

保安部

上面就是一个树型结构,如果我们要按格式显示其结构,可以在管理部下添加人资课.可以在总经理下添加行销处等

删除的时候如果删除管理处,那么,管理部,采购课,保安部通通都要删除.

这是一个典型的树型结构,我们要实现的功能是显示,添加,删除

数据库包括层的概念,建立如下:

create table ngb_org(
id number(8) primary key, //用sequence.nextval自动增加来实现
p_layer varchar2(8) , //父层 如,B
p_id varchar2(8), //父id 10
c_layer varchar2(8), //当前层,子层 C
c_id varchar2(8), //子层所在的编号 10
total varchar2(16) not null, //p_layer, p_id, c_layer, c_id字符串连在一起:B10C10 制造处
name varchar2(32) not null,//部门名称
create_by varchar2(32) ,//创建者
create_date Date , //创建日期
update_by varchar2(32),//修改者
update_date date); //修改日期

Create sequence ngb_org_seq
Increment by 1
Start with 1
Maxvalue 9999999
Cycle
Nocache

这里,整个公司是A10,总经理是A10B10(先把父id的层+编号重复,然后再写当前部门的层+编号).制造处为B10C10,制造一部为C10D10.同层编号以1为递增,最小为10,最大为99(没有哪个公司有89个同级别的部门吧?)

这样我们了解了其数据库,实现树型的逻辑,接着可以写显示部分了.

合理建立数据库十分重要,这也是DBA的重要性,可惜这些分析工作也是我一个小小的程序员做的:)

原文转自:http://www.ltesting.net