Goedemorgen mensen!

Ik heb een vraag. Is het mogelijk om een veld genaamd 'user_id', uit meerdere tabellen te gelijk te verwijderen? Ik heb namelijk een database met modules en users. En als ik dan een users wil verwijderen, wil ik ook dat alle records met de user_id van de aangeklikte user uit de volledige database verwijderd word.

Alvast bedankt!
Je stelt zowel de gewenste ON UPDATE als de ON DELETE in. Alleen wanneer je voor 200% zeker weet dat je CASCADE kunt gebruiken, gebruik je deze ook. In alle andere gevallen is RESTRICT een betere aanpak.

CASCADE geeft namelijk een domino-effect, alles wat via-via aan het ene record is gekoppeld, wordt bijgewerkt of weggegooid. En dat wil nog wel eens hele vervelende gevolgen hebben...

Tip: Verwijder geen data, pas de status aan.

Backups zijn voor noodgevallen, als de server is afgebrand. Daarnaast zijn backups vaak niet betrouwbaar, de data is slechts zeer zelden zo maar terug te zetten. Ik spreek uit ervaring, heb hier bij zeer grote multinationals mee te maken gehad...
Backups maak ik regelmatig, dus dat is niet zo'n ramp. Maar als je bijvoorbeeld berichten (noem maar wat hoor) aan een userid hebt gekoppeld, en het wordt overgezet naar een ander id, dan moet het inderdaad wel mee wijzigen.
Anders maak je gewoon een nieuw ID aan en heb je niets met cascade te maken. Maar julllie hebben wel een punt dat er goed over nagedacht moet worden voor je het gebruikt.
Robert_Deiman schreef op 15.01.2008 13:52
Backups maak ik regelmatig, dus dat is niet zo'n ramp.
Inderdaad, dát is niet zo'n ramp.

Maar, heb je deze backups ook wel eens teruggezet? En dan niet alleen in de situatie van een backup van gisteren, maar ook eentje van een week oud die je moet mixen met data van ná het aanmaken van de backup? Daar zitten vaak de echte problemen.

Het maken (opzetten) van een backup is een eenmalig karweitje en vervolgens het instellen van een cronjob.
@pgFrank

Het terugzetten valt nog wel mee als de systemen niet al te groot zijn. Momenteel werk ik aan een CMS, waar ook een "restore" functie in gaat komen. Dan kan je een eerdere versie terugzetten. (beetje zelfde idee als Windows systeem herstel)

Op zich valt het wel mee met de data, omdat ik probeer zoveel mogelijk transactions te gebruiken waar meerdere query's nodig zijn om de boel up to date te maken.
Er zal inderdaad wel wat data verloren gaan bij een gewone backup.

Het systeem voor herstel waar we momenteel aan werken (werkt met MySQL en InnoDB, maar wel via de PDO manier) slaat een kopie van voor de wijzigingen op (binnen een Transactie) zodat die terug gezet kunnen worden.

Reageren