本组织架构模组实现的功能是,显示一个树型的公司组织架构模式,可以在最后一层的每一层添加部门.也可以删除任意部门,如果删除带子部门的部门,那么,其所属子部门一起被删除.如,
总经理
制造处
制造一部
制造一课
产品工程部
品保处
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的重要性,可惜这些分析工作也是我一个小小的程序员做的:)