Groepen /subgroepen verwijderen QUERY probleem
voorbeeld inhoud van de tabel:
Nu is de vraag, hoe bouw ik mijn SQL query op dat als ik een groep wens te verwijderen hij ook de subgroepen verwijderd.
Mijn Sql kennis is jammergenoeg niet groot genoeg en heb er geen idee van hoe ik dat moet aanpakken.
Bedankt alvast
Een FOREIGN KEY zorgt ervoor, dat een subgroep alleen aangemaakt kan worden, als de opgegeven id voor de hoofdgroep ook echt bestaat. Ook kan je dan opgeven wat er moet gebeuren als dat id niet meer bestaat (dus wordt verwijdert).
Wat links:
http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html
http://www.phphulp.nl/php/tutorials/3/274/504/
kijk eens naar on cascade delete.
Heb wat gegoogeld op die cascade delete maar snap er niets van, kan iemand mij wat verderhelpen ?
steeds niets gevonden ... kan er me echt niemand helpen ?
Major Apollo schreef op 08.04.2007 19:15:
Geen innoDB? Dan zul je een andere database dan MySQL moeten kiezen. De enige engine van MySQL die met relationele databases overweg kan, is innoDB.InnoDB is geen optie nu...
Heb wat gegoogeld op die cascade delete maar snap er niets van, kan iemand mij wat verderhelpen ?
Heb wat gegoogeld op die cascade delete maar snap er niets van, kan iemand mij wat verderhelpen ?
Kortom, wat jij wilt, kun je niet in MySQL met SQL oplossen, dat zul je met PHP moeten doen (extra queries en controles maken).
Maar wordt alsjeblieft wakker en ga eens een goede database uitzoeken, bv. het reeds genoemde PostgreSQL. Ben je van een hele hoop gedonder en onzekerheid af.
Ok bedankt frank, kzal het moeten uitdokteren met een php routine dan.
Ik snap dat de puristen dit niks vinden, maar dat het onmogelijk zou zijn klopt niet.
Dus 2 queries versturen en checken of deze zijn gelukt. Mocht echter de 2e query mislukken, dan ben je de klos, er blijven restanten in de database achter die daar helemaal niet horen te staan. Die kunnen uiteindelijk ook weer voor problemen zorgen, afhankelijk van waar deze voor dienen. Je zult dit met de hand moeten verwijderen.
Gebruik gewoon innoDB of een betere database met FK's, dan bestaat dit hele probleem niet.
Frank, is het niet leuk als je een tutorial schrijft hoe je Postgres installeert op je server ism Apache en PHP?
Ik ben met aanpassingen bezig op een live server dus ik kon moeilijk zomaar gaan overschakelen op een ander DB systeem met het risoco dat alles platvalt ... plus dat het nog php4 is enz ...
In de realiteit is het meestal zo dat als een syteem werkt laat het dan zo, niet upgraden, geen zware aanpassingen .... (zelf denk ik daar ook wel anders over maja, de ervaring spreekt dit tegen)
Quote:
Aanpassingen op een live-server? Dan neem je al het risico dat de boel plat gaat!Ik ben met aanpassingen bezig op een live server dus ik kon moeilijk zomaar gaan overschakelen op een ander DB systeem met het risoco dat alles platvalt
Zelf werk ik altijd met de volgende (uitgebreide) opzet:
dev => development en systeem testen
test => testen, functioneel en layout, geselecteerde testers
beta => testen in live-omgeving voor kleine groep
productie => voor alles en iedereen
Dat is voor nieuwe systemen de situatie, voor bestaande systemen waar onderhoud op wordt uitgevoerd, is er vrijwel nooit een beta-omgeving. beta en productie maken wel gebruik van dezelfde database, het zijn beide live-omgevingen.
Op deze manier kan er nooit wat misgaan met de data.
Upgraden is iets wat je eens in de zoveel tijd moet doen, maar dat kun je van te voren inplannen en uitgebreid testen. Ligt overigens aan de omvang van het systeem en de huidige status hoevaak je dat doet. Veel eenvoudige cms-jes kunnen prima 2 a 3 jaar zonder onderhoud werken, mits de oorspronkelijke opzet al goed is.
@Jason: Google eens op een tut, er zijn er duizenden te vinden. Ik denk niet dat ik daar iets aan bij te dragen heb. Komt bij dat er zo weinig aan te tutten valt... 2 weken geleden nog installatie op XP gedaan, downloaden duurt vele malen langer dan installatie!