Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| dev:python:flask:flask-sqlalchemy:relation_many-to-many [2025/08/05 21:26] – yoann | dev:python:flask:flask-sqlalchemy:relation_many-to-many [2025/08/05 22:16] (Version actuelle) – yoann | ||
|---|---|---|---|
| Ligne 6: | Ligne 6: | ||
| :TODO: | :TODO: | ||
| + | ====== Suppression des enregistrements orphelins dans une association many-to-many ===== | ||
| + | |||
| + | Un cas typique est la gestion des étiquettes (tags) ou des mots-clés (keywords). | ||
| + | |||
| + | |||
| + | Dans cet exemple on souhaite pouvoir associer des mots-clés à des jeux : | ||
| + | |||
| + | |||
| + | * A un jeu on peut associer **0 ou plusieurs** mots-clés ; | ||
| + | * Un mot-clé est associé à **1 ou plusieurs** jeux ; | ||
| + | |||
| + | On définit bien une association plusieurs-à-plusieurs mais on ne souhaite pas conserver dans notre base des mots-clés seuls. Lorsqu' | ||
| + | |||
| + | Ce comportement de suppression des enregistrements orphelins est bien pris en charge par l'ORM SQLAlchemy sur des associations de type one-to-many mais sa mise en œuvre sur des associations de type many-to-many est un peu plus délicate. | ||
| + | |||
| + | Heureusement le package Python **SQLAlchemy-Utils** permet de mettre en œuvre se comportement via sa fonction **auto_delete_orphans**. | ||
| + | |||
| + | |||
| + | < | ||
| + | Pour pouvoir utiliser la fonction '' | ||
| + | </ | ||
| Ligne 17: | Ligne 38: | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||
| * https:// | * https:// | ||
| * https:// | * https:// | ||
| + | |||