Moj, odokativno, predlog bi izgledao ovako:
create table klijenti (
id_klijent integer not null,
ime varchar (20),
prezime varchar (20),
...
);
alter table klujenti add constraint pk_klijenti primary key (id_klijent);
create table ponude (
id_ponude integer not null,
id_klijent integer,
datum date,
...
);
-- ne mogu biti dva sloga sa istim vrednostima za id_ponudu i id_klijent
alter table ponude add constraint pk_ponude primary key ( id_ponude, id_klijent);
-- povezuje se sa tabelom klijenti
alter table ponude add constraint fk_ponude foreign key (id_klijent) references klijenti (id_klijent) on update cascade;
create table dopunske_ponude (
id_dopunske integer not null,
id_ponude integer not null,
datum date,
...
);
-- ne mogu biti dva sloga sa istim vrednostima za id_ponude i id_dopunske
alter table dopunske_ponude add constraint pk_dopunske_ponude primary key ( id_ponude, id_dopunske);
-- povezuje se sa tabelom ponude
alter table ponude add constraint fk_ponude foreign key (id_ponude) references ponude (id_ponude) on update cascade;
S tim, ako ima više dopunskih ponuda za jednu osnovnu ponudu, broj te ponude u tabeli dopunske ponude će se ponoviti onoliko puta koliko ima dopunskih ponuda. Ta minimalna redudansa je prihvatljiva!?!
Pozdrav.
|