login  Naam:   Wachtwoord: 
Registreer je!
 Forum

SQL Cascading

Offline Deloo - 14/05/2012 16:34
Avatar van DelooLid Gewoon een vraagje uit interesse. Wanneer doe je bij SQL-databases best Cascading deletes en updates? Best zoveel mogelijk? Best zo weinig mogelijk? In welke gevallen best wel/niet?

Ik stel de vraag omdat ik in Entity Framework het cascaden moest afzetten om mijn database te kunnen laten genereren. Ik heb het globaal afgezet, doe ik dit best niet, en dan enkel de foreign keys die de fouten geven niet laten cascaden?

Alvast bedankt voor jullie inzichten  

5 antwoorden

Gesponsorde links
Offline Maarten - 14/05/2012 17:02
Avatar van Maarten Erelid In principe, als de records bv. details vormen van een totaalrecord...

Stel dat je een tabel hebt met gezinnen, en dan heb je een tabel met gezinsleden, dan is het logisch dat de gezinsleden worden verwijderd als het gezin wordt verwijderd.

Als je echter een tabel hebt met producten, en je hebt ergens een factuurregel die naar dat product verwijst, wil je die uiteraard niet kwijt - ook al is dat misschien de enige factuurregel die je hebt.

Aan de andere kant verwijder ik eigenlijk zelden iets uit database, ik deactiveer het meestal, dan heb je altijd historiek en weinig kans op fouten. Alleen mag je dan nergens vergeten enkel de actieve records te tonen en joinen 
Offline Deloo - 14/05/2012 18:09
Avatar van Deloo Lid Dus is het eigenlijk beter om relatie per relatie te bekijken of er cascading delete, update mag gedaan worden ipv voor de hele database uit te schakelen?

Sowieso moeten we maar 7 à 8 jaar geschiedenis bijhouden dus daarna mag het wel verwijderd worden. Zullen dus wel moeten opletten dat we met de gegevens van 8 jaar geleden onrechtstreeks geen gegevens van vandaag deleten... denk ik?
Offline Stijn - 14/05/2012 19:00
Avatar van Stijn PHP expert Je kan natuurlijk ook een historiek database maken en als je iets verwijdert, verwijder je het van de live database naar de historiek database . Vergeet natuurlijk je backups niet te nemen.
Offline Ontani - 15/05/2012 08:43
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Zoals Stijn aanhaalt is een historiek database een van de beter opties. Zo hou je de live database zo fris en zo klein mogelijk.
Offline Deloo - 15/05/2012 12:14
Avatar van Deloo Lid
Ontani schreef:
Zoals Stijn aanhaalt is een historiek database een van de beter opties. Zo hou je de live database zo fris en zo klein mogelijk.


Oké hier zal ik zeker rekening mee houden. Bedankt voor de tip!

Deloo schreef:
Dus is het eigenlijk beter om relatie per relatie te bekijken of er cascading delete, update mag gedaan worden ipv voor de hele database uit te schakelen?


Dat zit je waarschijnlijk toch nog met hetzelfde probleem? Op het moment dat je de data verplaatst wordt alles verwijderd uit de originele database?
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.167s