Jedan foreign key referencira dva primary key

table1
ID (PRIMARY)

table2
ID (PRIMARY)

table3
IDpar(FOREIGN KEY)

Imam 2 ID-a iz 2 različite tabele(table1 i table2) i oni su primary key. U 3. tabeli (table3) imam IDpar koji je foreign key i referencira ID u table1 i table2.

Ako ja napravim ovo

FOREIGN KEY (IDpar) REFERENCES table1(ID)
        ON UPDATE CASCADE
        ON DELETE CASCADE
FOREIGN KEY (IDpar) REFERENCES table2(ID)
        ON UPDATE CASCADE
        ON DELETE CASCADE

Kako će baza znati koja vrijednost u stupcu IDpar(table3) dolazi iz ID(table1 i table2). Ti ID iz obje tabele su auto-increment i često će imati iste vrijednosti. I sada je situacija ovakva

ID(table1)
1
2

ID(table2)
1
2

IDpar(table3)
1 (ID table1)
1 (ID table2)
2 (ID table1)
2 (ID table2)

I sada ako ja napravim update ID(table1) i promijenim vrijednost iz 1 u 3, onda će mi se u table3 IDpar svugdje gdje je bio 1 prebaciti u 3?
A to se ne bi smjelo dogoditi jer jedna vrijednost dolazi iz table1 a jedan iz table2.

Ovo je pogrešan pristup i pokazuje fundamentalno ne poznavanje baza podataka.
Za početak pogledaj

Onda pogledaj dokumentaciju svoje baze, pretpostavljam da radiš s MySQLom: MySQL :: MySQL Documentation: MySQL Reference Manuals (Odaberi verziju i listaj)
Zatim pogledaj neki tutorijal koji te upoznaje s osnovama razvoja baza podataka npr ovaj mi se čini ok: Beginner’s guide to databases | Adobe Developer Connection i ovdje možeš naći par dobrih linkova: A beginner’s guide to SQL database design - Stack Overflow

A sad kao prečac tvome riješenju je:

imaš

table1
ID (PRIMARY)

table2
ID (PRIMARY)

i onda imaš
table1
ID (PRIMARY)

table2
ID (PRIMARY)

table3
IDpar(PRIMARY)

table3_table1
ID (Foreign key table1)
IDpar(Foreign key table3)

table3_table2
ID (Foreign key table2)
IDpar(Foreign key table3)

To ti je od prilike to. U svakom slučaju ti preporučam da prolistaš navedene linkove, jer bez muke nema nauke, a bez zanja ni imanja.

definitivno hoću.

No nisam baš skontao taj prečac što si mi dao


Copyright © 2022 WM Forum - AboutContact