2013-10-14 2 views
0

Je comprends que ForeignKey contraint une colonne à être une valeur d'ID contenue dans une autre table afin que les entrées dans deux tables différentes puissent être facilement liées, mais je ne comprends pas le comportement de relationships(). Pour autant que je sache, l'effet principal de la déclaration d'une relation entre les classes Parent et Child est que parentobject.child référencera désormais les entrées liées à l'objet parent dans la table children. Quels autres effets la déclaration d'une relation a-t-elle? Comment la déclaration d'une relation modifie-t-elle le comportement de la base de données SQL ou comment SQLAlchemy interagit avec la base de données?Relations SQLAlchemy

Répondre

3

Il ne fait rien au niveau de la base de données, c'est purement par commodité. La définition d'un relationship permet à SQLAlchemy de savoir comment interroger automatiquement l'objet associé, plutôt que d'avoir à utiliser manuellement la clé étrangère. SQLAlchemy effectuera également d'autres tâches de gestion de haut niveau, telles que l'attribution d'objets et les changements en cascade.

Questions connexes