[ MatezYU @ 26.09.2007. 05:48 ] @
Poz. Pocetnik sam sa firebird bazom. Kontam kako da uradim referencijalni integritet sa jednim polje, dakle imam jednu glavnu tabelu gde mi se nalaze neke sifre i opis sifre i onda samo tu sifru povezem sa drugom tabelom gde je ta sifra strani kljuc. Interesuje me da li moze da se uradi sledece, da imam jednu kolonu kao grupu i jos jednu kolonu kao podgrupu i da one zajedno cine kao index unique i kada se on promni u ovoj tabeli da se automatski ta dva polja promene i u toj drugoj tabeli? Ne znam da li sam bio jasan dovoljno
[ schild @ 26.09.2007. 06:58 ] @
Može. Daklem ovako:
Code:
CREATE TABLE Tabela1 (
    ID1      INTEGER NOT NULL,
    ID2      INTEGER NOT NULL,
    OSTLO1   INTEGER,
    UNIQUE (id1, id2)
); 

CREATE TABLE Tabela2 (
    ID        INTEGER NOT NULL,
    FK1      INTEGER NOT NULL,
    FK2      INTEGER NOT NULL,
    OSTLO2  INTEGER,
    PRIMARY KEY (id)
);

ALTER TABLE Tabela2 ADD CONSTRAINT FK_T2_T1 FOREIGN KEY (FK1,FK2) REFERENCES Tabela1 (ID1, ID2) ON UPDATE CASCADE;

Ovo ON UPDATE CASCADE na kraju ti obezbeđuje da se promenom vrednosti ID1 i/ili ID2 u Tabeli1 automatski promene polja FK1 i FK2 u Tabela2.