BIEE 树型结构的四种建模办法ITeye - 乐橙lc8

BIEE 树型结构的四种建模办法ITeye

2019-01-11 11:38:50 | 作者: 景天 | 标签: 节点,一切,部属 | 浏览: 2538


怎么样,够杂乱吧? 其逻辑便是 首要找到Helen Mayes的一切部属,然后在去查找这些部属没有归于Helen Mayes部属的上级.........WTF...........

 

别的,移动和新添加节点也比较杂乱

比方咱们要在Helen Mayes和Chris Jones之间刺进一名职工Scott,如下图所示

 

 

从上图基本上就可以看出来咱们要更改的当地了......需求从头生成比新刺进节点的nsleft值大的一切节点的nsleft和nsright值

非常杂乱......

 

  计划四(Closure Table)  

CREATE TABLE Employees(
employee_id int,

employee_name varchar2(100)

);

 

CREATE TABLE TreePaths (
ancestor_key int,

member_key  int,

Distance int,

is_leaf int

);

 

Closure Table将树中每个节点与其后代节点的联系都存储了下来,如下图所示:

留意:每个节点都有一条到其自身的记载,如上表的第一条、第四条、第六条记载

Distance是先人节点到其自身之间的深度

IS_LEAF用于标识该节点是否为叶子节点

 

 

有了这张联系表之后,下面让咱们用具编制子来感触其带来的优点

 

查找某个领导(Helen Mayes)的一切部属职工信息

select * from Employees a, TreePaths b where a.employee_id = b.ancestor_key and a.employee_name = Helen Mayes and b.distance 0

 

查找某个领导(Helen Mayes)的一切直属职工信息

select * from Employees a, TreePaths b where a.employee_id = b.ancestor_key and a.employee_name = Helen Mayes and b.distance=1

 

 查找某个职工的一切领导

select * from Employees a, TreePaths b where a.employee_id = b.member_key and a.employee_name = Helen Mayes and b.distance 0


 

因为时刻的联系(现在现已清晨1点),其它的关于增修改查的办法请我们自行验证。

    结语
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表乐橙lc8立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章