Re: Normalizing Tree Data
Date: Mon, 11 Feb 2008 14:37:54 -0800 (PST)
Message-ID: <a6634bec-eda0-477b-b93b-e2f6fe949e53_at_e23g2000prf.googlegroups.com>
On Feb 11, 3:18 pm, Bob Badour <bbad..._at_pei.sympatico.ca> wrote:
> cr113 wrote:
> > On Feb 8, 5:07 pm, Bob Badour <bbad..._at_pei.sympatico.ca> wrote:
>
> >>Is the first level always Company? Is the next level always Division? Is
> >>the next level always Manager? Is the next level always Employee?
>
> > Yes.
>
> >>What does the ID table give you that you don't get from foreign key
> >>references from Employee to Manager, from Manager to Division, and from
> >>Division to Company?
>
> > IBM
> > Div-A
> > Jones
> > Smith
> > Div-B
> > Smith
> > Microsoft
> > Div-A
> > Johnson
> > Div-B
> > Jones
> > Smith
>
> > I'm not sure what you mean by foreign key references.
>
> > Do you mean this?
>
> > Company Table
> > Company
> > IBM
> > Microsoft
>
> > Division Table
> > Company Division
> > IBM Div-A
> > IBM Div-B
> > Microsoft Div-A
> > Microsoft Div-B
>
> > Manager Table
> > Company Division Manager
> > IBM Div-A Jones
> > IBM Div-A Smith
> > IBM Div-B Smith
> > Microsoft Div-A Johnson
> > Microsoft Div-B Jones
> > Microsoft Div-B Smith
>
> > Or this?
>
> > Company Table
> > CompanyKey Company
> > 1 IBM
> > 2 Microsoft
>
> > Division Table
> > DivisionKey Division CompanyKey
> > 1 Div-A 1
> > 2 Div-B 1
> > 3 Div-A 2
> > 4 Div-B 2
>
> > Manager Table
> > ManagerKey Manager DivisionKey
> > 1 Jones 1
> > 2 Smith 1
> > 3 Smith 2
> > 4 Johnson 3
> > 5 Jones 4
> > 6 Smith 4
>
> > I've tried both of these and they seem to get awkward with 3 or more
> > levels. Are you talking about one of these methods?
>
> Those both use foreign key references. Yes, either of these methods.
> What does your ID table give you that you don't get from using foreign
> key references?
The first method uses up huge amounts of space. I think you may be right, though. I'm starting to lean towards the 2nd method. I lied a little. I never actually used the 2nd method. I started a few times but changed my mind because I thought it would be too hard to use. I'm thinking if I write some simple functions it would make it much easier. For example a function like GetCompany(Manager). Otherwise all those SQL joins would get ugly.
Thanks! Received on Mon Feb 11 2008 - 23:37:54 CET