MySQL vet inte och behöver inte heller veta om en relation är 1-1 eller 1-många.
Ingen SQL stöder många-många-relationer, alla kräver en mellantabell som delar upp en många-många-relation i 2 separera 1-många.
Skillnaden ligger i logiken som styr relationerna, vilket finns i koden som du skriver.
En 1-1 relation upprätthålls genom att tabellerna delar samma primärnyckel (PK).
Med sekundär tabell som förklarar att PK är en främmande nyckel som pekar på de andra tabellerna PK.
Table chinese_mother (
id integer primary key,
name....
Table chinese_child (
id integer primary key,
name ....
....,
foreign key (id) references chinese_mother.id
Riktningen för relationen 1 -> many
kontra many <- 1
bestäms av platsen för länkfältet.
Vanligtvis har varje tabell ett unikt id
och länkfältet heter tablename_id
.
Tabellen som har länkfältet i sig är many
sidan av relationen är den andra tabellen på 1
sida.
Table user
id: primary key
name......
.....
Table location
id: primary key
user_id foreign key references (user.id)
x
y
.......
Genom att placera länkfältet i location
tabell, tvingar du saker så att en plats bara kan ha 1 användare. En användare kan dock ha många platser.