Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Help with Database design
"Eric" <admin_at_t10.net> writes:
> I am a new employee at this company and I need help
> in explaining to the Data Modelers that their designs are not good.
>
> They will take a customer table and split it out into:
> customer
> email
> phone
> address
> etc...
>
> So when queries take place, a 5+ table join must occur.
> Does anyone have any quick stats on the overheads of joins?
> They tell me they split this up because they need to store history.
>
> How can I explain this to them that they need 1 customer table
> and maybe a history table. (since the history hardly ever gets queried)
>
How many email addresses can a customer have?
How many phone numbers can a customer have?
How many mailing addresses can a customer have?
I bet the answer to each question is "more than one". (It may be phrased "almost always one" but that is equivalent to "more than one").
Your data modelers are doing the correct thing; I suspect that "improving" the data model by denormalizing all of those tables back into the customer table would cause more harm than good.
If you can persuade the Data Modelers that performance in this case is more important than proper design, and the advantages outweigh the disadvantages you may be able to get the data model changed.
--
Kelly R. Burkhart
kburk_at_sky.net
[The litigation] industry was, of course, up and running before the tobacco litigation, but that taught lawyers just how lucrative it could be to blame individuals' foolishness on, say, Joe Camel.