Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Database hierarchies

RE: Database hierarchies

From: Aggarwal, Meenakshi <Meenakshi.Aggarwal_at_fishersci.com>
Date: Thu, 13 Jan 2005 09:01:07 -0500
Message-ID: <32729C17301C744582A747BD41569C12017CB2F7@PGHCR-EXMB-VS-1.na.fshrnet.com>


Hi Vincent,

Thanks for providing me the links. I could access the first link but was = not able to open second link. I would appreciate if you can send second = link again.

Thanks
Meenakshi

-----Original Message-----
From: Chazhoor, Vincent [mailto:Vincent.Chazhoor_at_CIBC.com] Sent: Wednesday, January 12, 2005 10:05 AM To: Aggarwal, Meenakshi; oracle-l_at_freelists.org Subject: RE: Database hierarchies

There are two other approaches=20
=20

1. Kimballs helper table apprach. Please see the details at
=20

http://www.google.ca/search?q=3Dcache:s8k19JsELzIJ:www.dbmsmag.com/9809d0= 5.htm
l+kimball+helper+tables+hierarchies+fact+table&hl=3Den
=20

     This will work even if you have multiple hierarchies. If one = employee
has one manager the Oracle parent_id apprach will work. But if an = employee
is reporting to one manager for administrative purposes and another = managers
(project manager) for work related tasks then the apprach of using = CONNECT
BY MAY not work. But kimball's helper table apprach will work. This is mainly used in reporting/data warehouse environments. But can be used = for
OLTP also.=20
The sample code forOracle databaseis available at kimball's website.
=20

2. Joe celko's left number right number appraoch.

    This was introduced by Joe in his book 'SQL for smarties'. You can = get
the details at=20
=20

http://www.google.ca/search?q=3Dcache:tl_CTRYtCQYJ:www.intelligententerpr= ise.c
om/001020/celko.shtml+Joe+left+number+right+number+hierarchies&hl=3Den
=20

This is a very flexible apprach and it will give good performance. The = only
issue is generating the left and right numbers are very complex. There = are
some sample code on the web for Sql serve. May be you need to modify it = for
oracle if this is the apprach that you want to go.

Thanks,

Vincent

-----Original Message-----
From: oracle-l-bounce_at_freelists.org
[mailto:oracle-l-bounce_at_freelists.org]On Behalf Of Aggarwal, Meenakshi Sent: Wednesday, January 12, 2005 8:46 AM To: oracle-l_at_freelists.org
Subject: Database hierarchies

Hi,

I have parent-child-child-child-.... (multiple hierarchies). What is the best approach to create tables in data warehouse, when user have no = clarity
on levels of hierarchies and I need to consider future increase in = levels of
hierarchies, so I need to plan a structure that can absorb future hierarchies.

I saw one example on asktom.oracle.com. Does anybody have better way...

select rpad('*',2*level,'*')||ename EmpName, dname,   2 sys_connect_by_path( ename, '/' ) cbp   3 from emp
  4 start with mgr is null
  5 connect by prior empno =3D mgr
  6 order SIBLINGS by ename
  7 /

EMPNAME                        DNAME          CBP
------------------------------ -------------- =
------------------------------
**KING                         ACCOUNTING     /KING
****BLAKE                      SALES          /KING/BLAKE
******ALLEN                    SALES          /KING/BLAKE/ALLEN
******JAMES                    SALES          /KING/BLAKE/JAMES
******MARTIN                   SALES          /KING/BLAKE/MARTIN
******TURNER                   SALES          /KING/BLAKE/TURNER
******WARD                     SALES          /KING/BLAKE/WARD
****CLARK                      ACCOUNTING     /KING/CLARK
******MILLER                   ACCOUNTING     /KING/CLARK/MILLER
****JONES                      RESEARCH       /KING/JONES
******FORD                     RESEARCH       /KING/JONES/FORD
********SMITH                  RESEARCH       /KING/JONES/FORD/SMITH
******SCOTT                    RESEARCH       /KING/JONES/SCOTT
********ADAMS                  RESEARCH       /KING/JONES/SCOTT/ADAMS


Thanks

--
http://www.freelists.org/webpage/oracle-l
--
http://www.freelists.org/webpage/oracle-l
Received on Thu Jan 13 2005 - 07:59:13 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US