From: | chester c young <chestercyoung(at)yahoo(dot)com> |
---|---|
To: | Neal Lindsay <neal(dot)lindsay(at)peaofohio(dot)com> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Inheritence and Integrity |
Date: | 2003-01-30 06:27:07 |
Message-ID: | 20030130062707.48883.qmail@web12703.mail.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
> inheriting pk and triggers
pg inheritance is quite limited. what i (and i'm sure many others)
have done is:
1. create master sequence
2. create base table
3. create base trigger procedures
4. create derived tables, using "inherit"
5. write procedure p( table_name ) that
a) sets pk of table_name using master sequence
b) attaches base trigger procedures onto table_name
6. run procedure p() against each derived table
another way to skin this cat is to use "objects" in the database:
-- base table
table common(
int id primary key ...,
ref_tab name, -- name of secondary table using common
... -- common columns and constraints
) without oids;
-- secondary table
table secondary1(
int id1 not null references common(id),
int id2 primary key, -- (can use id1 as pk!)
... -- secondary columns and constraints
) without oids;
-- views for secondary table - generate!
create secondary1_v1 as select c.*, s.*
from secondary1 s join common c on( s.id1 = c.id );
-- (if you want) dml for view to make life easier - generate!
...
if you are maintaining the common info, or if you want a many to one
secondary to master, this approach is easier.
__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com
From | Date | Subject | |
---|---|---|---|
Next Message | Tony Simbine | 2003-01-30 08:20:08 | Re: help: triggers |
Previous Message | Ryan | 2003-01-29 21:30:11 | Re: double linked list |