{{tag>dev python sql sqlalchemy relation}} :TODO_DOCUPDATE: ====== Flask-SQLAlchemy : relation de composition ====== La relation de composition est une forme particulière de [[dev:python:flask:flask-sqlalchemy:relation_one-to-many|relation one-to-many]]. Le diagramme UML la représente comme ci-dessous : {{mcd_relation_composition.png}} * Une voiture (le composite) peut contenir un ou plusieurs sièges (les composants); * Un siège est monté dans une seule voiture. **Dans une relation de composition, le composant ne peut pas exister sans son composite** : dans notre exemple on ne souhaite pas avoir dans notre base de siège sans voiture. Autrement dit si l'enregistrement voiture est détruit, les enregistrements sièges associés devront l'être également. ===== MLD et contraintes ===== Pour pouvoir traduire cette relation de composition il va falloir créer les contraintes appropriées. Lors de l'étape de traduction vers les MLD/MPD ===== Références ===== * * https://medium.com/@thinesh12/unlocking-the-power-of-composite-primary-keys-in-sqlalchemy-b378fb975e9b * https://www.devgem.io/posts/how-to-correctly-define-a-primary-key-in-sqlalchemy-with-sqlite-backend