Ik vroeg me af of je in Mysql(via phpmyadmin) databases kan linken, zonder in php een join te moeten gebruiken. Ik vond een link om relaties te maken maar ik snap het niet helemaal(http://img329.imageshack.us/img329/4193/linkenor7.jpg). Het gaat dan vooral om het doorvoeren van gegevens. In microsoft acces kan het en dan worden als je in een tabel de gegevens veranderd deze in alle tabellen aangepast zonder dat er extra dingen doorgevoerd moeten worden.
Mischien kan iemand me hier duidelijkheid in brengen.
Ik denk dat je ON UPDATE CASCADE bedoeld voorbeeld:
CONSTRAINT fk_usersgroups_groupid FOREIGN KEY (groupid) REFERENCES groups (groupid) ON UPDATE CASCADE ON DELETE CASCADE
Als ik nu in de tabel groups een groupid aanpas wordt het hier ook aangepast, het zelfde geld als ik iets verwijder.
Let wel even op dat een ON DELETE CASCADE gevaarlijk is en bijna nooit nodig!
[edit]Ook moet je hebben gekozen voor de InnoDB engine en niet (!) MyISAM (die ondersteund geen foreign keys[/edit]
Dank voor de snelle reactie.
Nou heb ik dus een bijkomede vraag, wat is het verschil tussen cascade, set null, no action en restrict? sett null en no action is zelfverklarend maar de andere 2 snap ik niet (en kan het ook niet in m'n php/mysql boek vinden) en wat is het beste om hier te gebruiken?
no action is het zelfde als restricted, maar verschillend per SQL dialect, MSSQL waar ik voor school mee heb gewerkt gebruikt no action wat mysql gebruikt weet ik niet. Je typed namelijk eigelijk nooit restricted of no action omdat het de standaard is (als er niks is ingevuld).
SET NULL ken ik niet dus daar kan ik niks over zeggen.
Maar het verschil tussen CASCADE en RESTRICED is dat bij RESTRICED geen actie ondernomen wordt en bij CASCADE de wijzigingen doorgevoerd worden in de gekoppelde tabellen.
Maar ik zou zeggen probeer eens het een en ander uit, dan ga je het denk ik het beste snappen.