-- ============================================== -- Script de vérification d'intégrité des données -- ============================================== -- 1) Vérifier unicité des emails SELECT email, COUNT(*) AS doublons FROM utilisateurs GROUP BY email HAVING COUNT(*) > 1; -- 2) Vérifier utilisateurs sans rôle SELECT id, email FROM utilisateurs WHERE role IS NULL OR role = ''; -- 3) Vérifier cohérence enfants → parents SELECT e.id AS enfant_id, e.nom, e.prenom FROM enfants e LEFT JOIN enfants_parents ep ON e.id = ep.enfant_id WHERE ep.parent_id IS NULL; -- 4) Vérifier cohérence enfants_parents → parents existants SELECT ep.enfant_id, ep.parent_id FROM enfants_parents ep LEFT JOIN parents p ON ep.parent_id = p.id WHERE p.id IS NULL; -- 5) Vérifier cohérence dossiers → utilisateurs SELECT d.id, d.parent_id FROM dossiers d LEFT JOIN parents p ON d.parent_id = p.id WHERE p.id IS NULL; -- 6) Vérifier cohérence contrats → utilisateurs et assistantes SELECT c.id, c.parent_id, c.assistante_id FROM contrats c LEFT JOIN parents p ON c.parent_id = p.id LEFT JOIN assistantes_maternelles am ON c.assistante_id = am.id WHERE p.id IS NULL OR am.id IS NULL; -- 7) Vérifier cohérence validations → utilisateurs SELECT v.id, v.valide_par FROM validations v LEFT JOIN utilisateurs u ON v.valide_par = u.id WHERE u.id IS NULL; -- 8) Vérifier cohérence dates enfants SELECT id, nom, prenom, date_naissance FROM enfants WHERE date_naissance > CURRENT_DATE; -- 9) Vérifier cohérence date agrément assistantes SELECT id, nom, prenom, date_agrement FROM assistantes_maternelles WHERE date_agrement > CURRENT_DATE; -- 10) Vérifier NULL obligatoires (ex: NIR des assistantes) SELECT id, nom, prenom FROM assistantes_maternelles WHERE nir IS NULL OR nir = ''; -- ============================================== -- Fin du script -- ==============================================