Clarifier et aligner les stratégies de suppression pour chaque FK (CASCADE / SET NULL / RESTRICT).
Tâches
Revue des FK : certaines sont déjà en CASCADE (ex. assistantes_maternelles.id_utilisateur, enfants_parents, dossiers, messages, contrats, avenants_contrats, evenements.id_enfant) ; d’autres sans règle explicite (ex. evenements.id_am, evenements.id_parent, evenements.cree_par, validations.id_utilisateur). Ajouter la stratégie voulue.
Produire 04_fk_policies.sql avec ALTER TABLE pour ajuster.
Critères d’acceptation
Stratégies documentées tableau par table.
Tests de suppression montrent le comportement attendu.
## Description
Clarifier et aligner les stratégies de suppression pour chaque FK (CASCADE / SET NULL / RESTRICT).
## Tâches
- Revue des FK : certaines sont déjà en CASCADE (ex. assistantes_maternelles.id_utilisateur, enfants_parents, dossiers, messages, contrats, avenants_contrats, evenements.id_enfant) ; d’autres sans règle explicite (ex. evenements.id_am, evenements.id_parent, evenements.cree_par, validations.id_utilisateur). Ajouter la stratégie voulue.
- Produire 04_fk_policies.sql avec ALTER TABLE pour ajuster.
## Critères d’acceptation
- Stratégies documentées tableau par table.
- Tests de suppression montrent le comportement attendu.
vdorge
added this to the P'titsPas-Ynov project 2025-08-25 09:44:06 +00:00
-- Supprime un utilisateur qui a posté des messages : les messages restent, sender NULL
DELETE FROM utilisateurs WHERE id = '...'; -- vérifier messages.id_expediteur IS NULL
-- Supprime un co-parent : la relation co_parent devient NULL
DELETE FROM utilisateurs WHERE id = '...'; -- vérifier parents.id_co_parent IS NULL
-- Supprime une AM : evenements.id_am devient NULL (historique conservé)
-- Supprime un parent : dossiers & messages du dossier sont supprimés via CASCADE
# Exécution + vérifications
## Vérifier (exemples)
-- Supprime un utilisateur qui a posté des messages : les messages restent, sender NULL
DELETE FROM utilisateurs WHERE id = '...'; -- vérifier messages.id_expediteur IS NULL
-- Supprime un co-parent : la relation co_parent devient NULL
DELETE FROM utilisateurs WHERE id = '...'; -- vérifier parents.id_co_parent IS NULL
-- Supprime une AM : evenements.id_am devient NULL (historique conservé)
-- Supprime un parent : dossiers & messages du dossier sont supprimés via CASCADE
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Description
Clarifier et aligner les stratégies de suppression pour chaque FK (CASCADE / SET NULL / RESTRICT).
Tâches
Revue des FK : certaines sont déjà en CASCADE (ex. assistantes_maternelles.id_utilisateur, enfants_parents, dossiers, messages, contrats, avenants_contrats, evenements.id_enfant) ; d’autres sans règle explicite (ex. evenements.id_am, evenements.id_parent, evenements.cree_par, validations.id_utilisateur). Ajouter la stratégie voulue.
Produire 04_fk_policies.sql avec ALTER TABLE pour ajuster.
Critères d’acceptation
Stratégies documentées tableau par table.
Tests de suppression montrent le comportement attendu.
Plan des politiques ON DELETE (résumé)
Exécution + vérifications
Vérifier (exemples)
-- Supprime un utilisateur qui a posté des messages : les messages restent, sender NULL
DELETE FROM utilisateurs WHERE id = '...'; -- vérifier messages.id_expediteur IS NULL
-- Supprime un co-parent : la relation co_parent devient NULL
DELETE FROM utilisateurs WHERE id = '...'; -- vérifier parents.id_co_parent IS NULL
-- Supprime une AM : evenements.id_am devient NULL (historique conservé)
-- Supprime un parent : dossiers & messages du dossier sont supprimés via CASCADE
Ajouter migrations/04_fk_policies.sql
A tester sur Docker