-- Suppose I have several types of foos
create table foo_types ( foo_type_id serial primary key, foo_name text not null
);
-- And the foos itself:
create table foo ( foo_id serial primary key, foo_type_id int not null references foo_types, foo_general_data1
text
);
-- 1st special foo:
create table foo_1 ( foo_1_id serial primary key, foo_id int not null references foo, foo_1_data1 int,
foo_1_data2text
);
-- 2nd special foo:
create table foo_2 ( foo_2_id serial primary key, foo_id int not null references foo, foo_2_data1 numeric(8,2),
foo_2_data2timestamp
);
-- And I have bars that each have zero or more (special) foos.
create table bar ( bar_id serial primary key
);
create table bar_foos ( bar_id int not null references bar, foo_id int not null references foo
);
-- Now how do I prevent that I can insert a foo_1 and a foo_2 with
-- the same foo_id? Or is the design errorneous itself?
--
Markus Bertheau
Berlin, Berlin, Germany