Ja man
Voordelen zijn dat integriteit kan worden afgedwongen, op database niveau
Verwijderd
Je bedoelt 'foreign key constraints'.
Een foreign key constraint controleert of een waarde die je in een tabel plaatst als foreign key wel een waarde is die als key in de gerelateerde tabel is opgenomen.
Voorbeeld in een forum:
Tabel User, PK UserID, tabel Post, PK PostID, FK UserID. Als je dan in Post een insert doe met een UserID waarde die niet in de tabel User voorkomt krijg je een error.
Verder kun je ook de betrouwbaarheid van je gegevens bewaken. Stel dat een user verwijderd wordt, maar hij heeft nog wel posts, dan kan je ervoor kiezen dat er ofwel een foutmelding wordt gegeven, ofwel een 'cascade delete' plaatsvindt, dus dat alle gerelateerde records in Post verwijderd worden.
MySQL ondersteunt echter geen van dit alles, dus je zult in je code heel goed dit soort situaties moeten afvangen.
HTH
Een foreign key constraint controleert of een waarde die je in een tabel plaatst als foreign key wel een waarde is die als key in de gerelateerde tabel is opgenomen.
Voorbeeld in een forum:
Tabel User, PK UserID, tabel Post, PK PostID, FK UserID. Als je dan in Post een insert doe met een UserID waarde die niet in de tabel User voorkomt krijg je een error.
Verder kun je ook de betrouwbaarheid van je gegevens bewaken. Stel dat een user verwijderd wordt, maar hij heeft nog wel posts, dan kan je ervoor kiezen dat er ofwel een foutmelding wordt gegeven, ofwel een 'cascade delete' plaatsvindt, dus dat alle gerelateerde records in Post verwijderd worden.
MySQL ondersteunt echter geen van dit alles, dus je zult in je code heel goed dit soort situaties moeten afvangen.
HTH
Verwijderd
/me lolOp donderdag 05 juli 2001 16:20 schreef raptorix het volgende:
cascading deletes are evil.
Jah, eigenlijk wel ja. Maar ach, soms voldoet het prima, en voegt een 'nette' oplossing niets toe.
Het is soms wel handig als je aan het devven bent, maar daarna heb je imho niet echt veel aan foreign keys..
Alleen als je een foutje maaktOp donderdag 05 juli 2001 16:20 schreef raptorix het volgende:
cascading deletes are evil.
Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR
ik heb die foreign keys dus volgens mij nodig.
tenminste zoals ik mijn datrabase op papier heb staan. hoe omzeil ik dit probleem?
(heb helaas alleen ervaring met access, en daarin kan ik een dynamic lookup in doen. toen heb ik het erd uitgeprint en wilde ik in mysql zetten. maar dat werkt geloof ik niet zo
)
tenminste zoals ik mijn datrabase op papier heb staan. hoe omzeil ik dit probleem?
(heb helaas alleen ervaring met access, en daarin kan ik een dynamic lookup in doen. toen heb ik het erd uitgeprint en wilde ik in mysql zetten. maar dat werkt geloof ik niet zo
waarom in vredesnaam in zo'n oude topic??
de enige manier waarmee je het kan omzeilen is door in je software zelf alle checks uit te voeren.
de enige manier waarmee je het kan omzeilen is door in je software zelf alle checks uit te voeren.
Klaar voor een nieuwe uitdaging.
Tsja, je kunt bij het devven natuurlijk met hele lappen code dezelfde referentiële integriteit bewerkstelligen, het kost je alleen veel extra werk. Bovendien is een slot achter de deur altijd wel zo prettig.Op vrijdag 06 juli 2001 09:09 schreef Martin Sturm het volgende:
Het is soms wel handig als je aan het devven bent, maar daarna heb je imho niet echt veel aan foreign keys..
Ik spoor veilig of ik spoor niet.
Pagina: 1