Ik ben bezig met een nieuws systeem en nu wil ik er een score/tevredenheids systeem aan toevoegen.
Per gebruiker en per bericht 1 score (nieuwe tabel)

Dus ik heb nu 3 tabellen, news, Email en Score.

In de score zit het id van zichzelf, id_news en id_email. Deze laatste 2 moet ik dus linken met de id van de overige 2 tabellen (1 op 1 relatie).

Hoe doe ik dat?

Ik gebruik de MySQL admin voor windows en ook PHPMySql, maar ik zie in beide progs niks staan om relaties tussen tabellen te regelen.

Met vriendelijke groet,

Rene
De relaties die jij bedoeld volgen eigenlijk direct al uit het datamodel dat jij gebruikt. Als jij een 1-op-1 relatie hebt, heb je alle gegevens in 1 tabel staan.

Voor een 1-op-veel (of natuurlijk veel-op-1) heb je uiteraard 2 tabellen nodig waarbij je in de 'veel' tabel een foreign key opneemt op de '1' tabel. Een voorbeeldje:

Een boek is door 1 iemand geschreven, maar 1 iemand kan meerdere boeken geschreven hebben. Dan zou je een datamodel krijgen als:

auteurs
--------
id
naam

boeken
---------
id
titel
auteur_id

Waarbij auteur_id de foreign key is op de auteurstabel.

Vervolgens kun je in phpmyadmin een foreign key constraint aanbrengen. Je opent daarvoor het relatie overzicht van de auteurs tabel, en koppelt daarin het id van de auteurs tabel aan het 'auteur_id' uit de boeken tabel. Een voorwaarde is dan wel dat je een index hebt op de kolom 'auteur_id'.

Vervolgens stel je de acties voor ON DELETE en ON UPDATE in, waarbij de betekenissen wel voor zich spreken lijkt me.
[quote='pgFrank schreef op 29.06.2007 20:08']Er zijn diverse tools voor oa. MySQL beschikbaar die dit ook zo kunnen weergeven.[quote]

Allereers Blanche, bedankt voor de uitleg. Heb ook zoiets al vernomen op het internet. Ja ja, het is wennen van Access naar MySQL.
Ik denk dat ik nu verder eens moet gaan testen en zo.

Frank, die tooltjes klinken wel interessant om ff te onderzoeken. Heb je ook links?

Mvg,

Rene
Gratis en voor niks, gebaseerd op Eclipse: klikkerdeklik

Maar leer gewoon SQL, daar heb je echt veel meer aan! Tevens blijf je het nodig hebben, het is gewoon de basis.
Dat lijkt me wel de beste oplossing ja.

Mvg,

Rene

Reageren