Neće se spoljnji ključevi popuniti vrednostima u drugoj tabeli kada ubaciš vrednost u polje koje je primarni ključ u prvoj tabeli. Relacija će samo obezbediti da kada dodaješ zapis u spoljnji ključ, da ta ista vrednost postoji u primarnom ključu u drugoj tabeli na koju je povezan.
Dakle ako imamo tabelu A gde je polje UnosID primarani ključ:
UnosID
-------
1
2
3
i ako imamo tabelu B gde je polje UnosID_FK spoljnji ključ, povezan relacijom sa UnosID iz prve tabele:
UnosID_FK
-----------
2
2
3
Dakle, kada se ubacuju vrednosti u tabelu A, neće se automatski popunjavati spoljnji ključ u tabeli B, to nema smisla. ALI primeti, kada ubacujemo vrednosti u polje UnosID_FK, možemo da ubacimo samo broj koji postoji u UnosID u tabeli A.
Najlakše je ovo razumeti na principu narudžbenica. Recimo da knjižara Plato primi narudžbu od tebe za tri knjige. Prva tabela je ona gde imamo narudžbe, a druga bi bila detalji narudžbe.
Code:
NarudžbaID Kupac
1 Marko
2 Pera
Dakle, ovde gore imamo ID narudžbe i npr. adresu kupca gde se šalje.
U drugoj tabeli bi imali:
Code:
ItemID NarudžbaID KnjigaID
1 1 2442
3 2 3231
2 1 1123
4 2 7481
5 2 8271
Kako vidimo ovde, narudžba broj 1 koja ide Marku, sastoji se od knjiga 2442 i 1123.
Narudžba broj 2 koja ide Peri, sastoji se od knjiga 3231, 74831 i 8271.
Primary key u relaciji je polje NarudžbaID iz prve tabele, a foreign key je polje NarudžbaID iz ove druge tabele dole. Primeti da u drugu tabelu ne možemo da stavimo Narudžbu broj 3 jer ne postoji u prvoj tabeli.
Ništa se ne "INSERT-uje" samo od sebe, podatke ubacujemo i u prvu i u drugu tabelu sami, a relacija će samo da osigura da ne ubacimo nešto u drugu tabelu što ne postoji u prvoj.
Eto.
Commercial-Free !!!