[BDD-S1] Ajout de CHECKs métiers & cohérence des données #2
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Description
Renforcer l’intégrité par des CHECK constraints manquants.
Tâches
dossiers.budget >= 0 (NUMERIC)
contrats.tarif_horaire >= 0, contrats.indemnites_repas >= 0
evenements.date_fin >= evenements.date_debut (si non NULL)
utilisateurs.courriel : regex existe → vérifier qu’elle accepte les tld + casse correctement (déjà un CHECK, le conserver / ajuster)
NOT NULL minimal sur colonnes clés si pertinent (ex. messages.contenu)
Critères d’acceptation
Script 03_checks.sql appliqué.
INSERT invalides refusés (tests fournis).
Checklist de vérification (rapide)
Cas qui doivent échouer (pour vérifier les CHECKS)
-- 1) Enfant avec les deux dates -> doit échouer
INSERT INTO enfants (statut, date_naissance, date_prevue_naissance)
VALUES ('actif', '2020-01-01', '2025-01-01');
-- 2) Enfant a_naitre sans date_prevue -> doit échouer
INSERT INTO enfants (statut) VALUES ('a_naitre');
-- 3) Message vide -> doit échouer
INSERT INTO messages (id_dossier, id_expediteur, contenu) VALUES ('00000000-0000-0000-0000-000000000000','00000000-0000-0000-0000-000000000000', ' ');
-- 4) Dossier budget négatif -> doit échouer
INSERT INTO dossiers (budget) VALUES (-10);
-- 5) Evénement avec date_fin < date_debut -> doit échouer
INSERT INTO evenements (date_debut, date_fin) VALUES ('2024-01-10','2024-01-01');
-- 6) Upload URL invalide -> doit échouer
INSERT INTO uploads (fichier_url) VALUES ('fichier relatif invalide');
Cas qui doivent réussir
-- Enfant a_naitre avec date_prevue
INSERT INTO enfants (statut, date_prevue_naissance) VALUES ('a_naitre', '2026-03-01');
-- Contrat tarifs/indemnités >= 0
INSERT INTO contrats (tarif_horaire, indemnites_repas) VALUES (12.50, 3.00);
Ajouter migrations/03_checks.sql
A tester sur Docker