linke mellem mysql tabeller

Tags:    php

Hejsa

Jeg er ude efter en tutorial eller en hjælpende hånd der kan forklare mig hvordan jeg kan linke tabeller i en mysql database sammen. og samtidig vise og skrive ned i tabellerne.
foreksempel en categori tabel der er sammen linket med nogle oplysninger i en anden tabel som igen er linket til en tabel med ydeligere oplysninger.

Det hele skal jo hænge sammen med et eller andet id felt men kan ikke helt forstå måden.

Håber i kan hjælpe :lol::lol:







Antag at du har 3 tabeller (opstiller en simpel produktløsning), med x-antal felter:

productz
-id
-name
-active
-textbitz
imagez
-id
-url
textbitz
-id
-content

For hver række i productz er der en tilsvarende række i textbitz. Disse to tabeller hænger sammen via felterne: productz.textbitz = textbitz.id. Dette er en "en-til-mange"-relation. Dette kan skrives ved:
SELECT productz.name, textbitz.content FROM productz, textbitz WHERE productz.textbitz = textbitz.id

For at lave en "mange-til-mange"-relation er man nød til at have en mellemtabel. Her laves den imellem productz og imagez, da man jo sagtens kan have flere billeder tilknyttet til en vare. Felterne i denne tabel relaterere så til id'et i de pågældende tabeller.

productz_imagez
-productz
-imagez

Linket mellem dem kan skrives ved:
"SELECT productz.name, imagez.filename FROM productz,imagez WHERE productz.id = productz_imagez.productz AND productz_imagez.imagez = imagez.id".

Bemærk, at jeg bruger et specialtegn("z") for at kende forskel på alm. felter og relations-felter.

Mange-til-mange relationer er virkelig langhåret.

Så er der noget der hedder "foreign keys", men det har jeg ikke styr på. Det skulle dog gerne gå ud på det samme.

Håber det kan hjælpe dig lidt... :)



Foreign keys virker præcis på samme måde som du stiller det op Gnu. En foreign key sørger bare for at id'et der refereres til rent faktisk eksistere i tabellen der refereres til.

Man marker en nøgle som en Foreign Key sådan her:
Fold kodeboks ind/udKode 

(Komplet statement, for at vise det)

Har ikke lige testet det, men viser da ihvertfald princippet :)



KANON

Tak for hjælpen i er for seje

:D:D:D



t