Outils pour utilisateurs

Outils du site


dev:python:flask:flask-sqlalchemy:relation_agregation

Ceci est une ancienne révision du document !


:TODO_DOCUPDATE:

Flask-SQLAlchemy : Définir une relation d'agrégation

La relation d'agrégation est une forme particulière de relation one-to-many. C'est une composition sans appartenance : la suppression d'une instance de la classe regroupant les agrégats n'entraine pas la suppression des agrégats.

Un exemple de relation d'agrégation dans le diagramme UML ci-dessous :

Le symbole UML de l'agrégation Symbole UML de l'agrégation. On place le symbole du côté de la classe qui regroupe les agrégats.

Un entrepôt (Warehouse) peut stocker plusieurs colis (Packet), et un colis est entreposé dans un seul entrepôt : cela définit bien une relation un à plusieurs (one to many).

En définissant une relation de type agréation, on fait le choix de conserver les colis dans notre base de données même si on supprime notre entrepôt.

MLD et contraintes

Pour pouvoir traduire cette relation d'agrégation il va falloir créer les contraintes appropriées lors de l'étape de traduction vers les MLD/MPD.

Avec SQLAlchemy, il nous faudra définir la relation et un cascade update

Ci-dessous une application minimale Flask définissant le modèle de données

 

Références

dev/python/flask/flask-sqlalchemy/relation_agregation.1753178752.txt.gz · Dernière modification : 2025/07/22 10:05 de yoann