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