15-08-2012

Data integriteit in mysql databases is een veel voorkomend probleem. Afgelopen tijd ben ik hier meerdere malen tegenaan gelopen. Een van de oorzaken hiervan is het gebruik van myisam tabellen in mysql. Veel hosting providers leveren alleen mysql met dit tabel type en dat betekend dat een solide database design ontdaan moet worden van alle "foreign key constrains" , in veel gevallen is dit geen probleem omdat de CRUD queries in de software de itegriteit bewaken. Helaas blijkt in de praktijk dit niet voldoende zekerheid

te geven en sluipen er fouten in. De oorzaken zijn: data import vanuit een externe bron, onvolledig uitgevoerde queries (geen transaction support), direct wijzigen van data in bijvoorbeeld phpmyadmin. De oplossing voor dit probleem is niet altijd eenvoudig. De makkelijkste oplossing is innodb tabellen gebruiken als dat mogelijk is, de andere oplossingen liggen meer in de trant van meer "failure proof" queries is de software (database transactions simuleren) en regelmatig "admin" onderhoud om de data integriteit te checken en te herstellen.