| From: | Martijn van Oosterhout <kleptog(at)svana(dot)org> | 
|---|---|
| To: | E Kolve <ekolve(at)corp(dot)classmates(dot)com> | 
| Cc: | Arne Weiner <aswr(at)gmx(dot)de>, pgsql-general(at)postgresql(dot)org | 
| Subject: | Re: many junction tables | 
| Date: | 2001-09-05 10:06:17 | 
| Message-ID: | 20010905200616.B7308@svana.org | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
On Tue, Sep 04, 2001 at 10:22:19AM -0700, E Kolve wrote:
> The idea is this.  Suppose I had say 40 or 50 tables like city or
> company (schools, purchases, etc) where I want to have a one to many
> relationship (One person can purchase many things, one person can attend
> many schools) I would have to create many junction tables
> (school_persons, purchase_persons, etc). What I am looking for is a
> solution to creating all these tables, if at all possible.
Well, for one-to-many relationships you don't need separate tables. Only
many-to-many relationships need that. And most of the time a many-to-many
relationship needs more than just the two fields.
For example, students and classes have a many-to-many relationship, but just
a simple two column table is not enough, what you really need it a new
enrolment table which has the two fields and also any other information
related (like grades, etc).
Since you only create the schema once, you can just generate a script to
create them for you. Yes, you'll get a lot of tables, but it's a complex data
structure.
So in the end all you have is one-many relationships.
-- 
Martijn van Oosterhout <kleptog(at)svana(dot)org>
http://svana.org/kleptog/
> Magnetism, electricity and motion are like a three-for-two special offer:
> if you have two of them, the third one comes free.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Peter Haworth | 2001-09-05 10:29:06 | Re: Perl won't eval PgSQL boolean value | 
| Previous Message | Nico | 2001-09-05 08:38:00 | plpgsql, fk inherited tables |