relatie tussen tabellen

Status
Niet open voor verdere reacties.

jeel2008

Gebruiker
Lid geworden
30 okt 2008
Berichten
839
hallo, ik heb drie tabellen, zie image.

maar ik heb een vraag:
waar geef ik nu aan dat club_id uit de tabel 'clubs' de foreign key is in de tabel club_player?

ik heb nu wel netjes een veld aangemaakt in de tabel club_player en dat veld club_id genoemd, maar hoe weet dat programma nu dat dit correspondeert met het veld club_id uit de tabel 'clubs'?

waar kan ik aanvinken: "dit is de foreign key die overeenkomt met de primairy key uit tabel clubs"?
 

Bijlagen

  • tabellen.jpg
    tabellen.jpg
    31,8 KB · Weergaven: 60
Dat is op zich niet noodzakelijk, dit kan je gewoon afvangen door je programma / script. Maar je kan het wel doen, ik heb het ooit eens gedaan met InnoDB tabellen.
 
afvangen

hallo rimsic, kun je een voorbeeld geven van wat je bedoelt?
bedoel je met een query?
bv: stel dat ik alle jansens zoek die van 82 tot 85 bij nac speelden.
 
nee, heb ik niet helemaal. (SELECT * FROM (from wat?))
maar goed, ik ga er nog eens induiken. (vooral in : club_player.club_id = clubs_club_id)

nog 1 vraag dan:
die tabel club_player, wordt die automatisch samengesteld uit de tabellen clubs en players??
dat dat programma dus begrijpt: de inhoud van de tabel club_player is de samensmelting van de tabellen clubs en players.
dat ik dat dus niet handmatig moet gaan zitten invoeren maar dat hij zelf die tabel maakt nadat je een zoekopdracht geeft.
dus zoek alle janssens van nac --> het antwoord komt vanzelf in de tabel club_player te staan. (ik bedoel, die uitkomst van een query moet toch ook wel ergens zolang worden opgeslagen?).
 
foutmelding

ok, maar dan krijg ik steeds een foutmelding.
zie plaatje.
 

Bijlagen

  • tb2.jpg
    tb2.jpg
    43,8 KB · Weergaven: 29
Die fotmelding komt omdat je mijn typefout 1-op-1 hebt overgenomen

clubs_club_id moet zijn clubs.club_id

Da's jammer, maar het vervelende is dat je zo weinig van SQL en databases weet, dat je niet in de gaten hebt wat je fout doet.




nog 1 vraag dan:
die tabel club_player, wordt die automatisch samengesteld uit de tabellen clubs en players??
dat dat programma dus begrijpt: de inhoud van de tabel club_player is de samensmelting van de tabellen clubs en players.
dat ik dat dus niet handmatig moet gaan zitten invoeren maar dat hij zelf die tabel maakt nadat je een zoekopdracht geeft.
dus zoek alle janssens van nac --> het antwoord komt vanzelf in de tabel club_player te staan. (ik bedoel, die uitkomst van een query moet toch ook wel ergens zolang worden opgeslagen?).

Nee, die tabel wordt niet automatisch samengesteld.
Begrijp je wat je aan het doen bent?
Je hebt een tabel met spelers en je hebt een tabel met clubs.
Hoe kan de database nu weten welke speler bij welke club heeft gespeeld? Dat zul je ook zelf moeten invullen.
Als je een query maakt "Zoek alle Janssens van NAC"
dan vraag je iets op uit de database. Jij vraagt en de database geeft de informatie.

Maar "Zoek alle Janssens van NAC" kan nooit een opdracht zijn aan de database om uit zichzelf sommige Janssens te koppelen aan NAC. Hoe zou die dat moeten weten?
Jij moet hem eerst vertellen welke spelers bij welke club horen.
 
database

wat betreft mn geringe kennis van mysql en php heb je helemaal gelijk, maar dat verklaart natuurlijk direct het feit dat ik op dit forum zit.
verder probeer ik te doorgronden hoe het zit. en dat valt nog niet mee, ik vind wat ik via google vind en in boeken lees nog niet heel duidelijk tot nu toe.

maar je helpt me wel op weg. bijvoorbeeld hierdoor:
"Dat zul je ook zelf moeten invullen."

aha. dat was eigenlijk de vraag. maar ik dacht dus dat dat veel makkelijker kon.
ik dacht dat je de id van de speler en de id van een club automatisch kon toewijzen als secundaire sleutel in de tabel club_player. maar niet dus.
maar je moet die nummers, die ids, uit de tabel clubs en de tabel player dus handmatig invullen in tabel clubs_players? lijkt mij snel tot typefouten leiden, met alle gevolgen vandien.

maar voor de rest geloof ik dat ik m nu heb.
natuurlijk kun je zo niet zoeken nee.
je hebt een tabel spelers.
en een tabel clubs.
meer niet. je kunt dus helemaal niet zeggen 'zoek alle jansen bij nac' want dat weet dat ding niet.
 
Laatst bewerkt:
typefouten? Dat soort dingen wil je niet handmatig gaan invullen in een database. Daar wordt normaal gesproken een hele 'interface' omheen gebouwd met Html en PHP zodat de gebruiker helemaal de club_id's niet hoeft te weten etc. En je kan wel zoeken, dit kan je doen door de querys.


Een query is niks meer dan een vraag stellen aan de database (of in andere gevallen, iets toevoegen, verwijderen, aanpassen etc.). En dit kan je zo simpel en moeilijk maken als jij dat wil..... ook kun je de vraag stellen welke dat je alle spelers met de naam jansen moet zoeken die bij de club nac spelen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan