2009-09-16 7 views

Répondre

1

L'interrogation d'une relation existante n'est pas vraiment différente de la création d'une nouvelle relation. Vous écrivez à peu près le même code mais spécifiez les noms de tables et de colonnes qui s'y trouvent déjà, et bien sûr vous n'aurez pas besoin de SQLAlchemy pour émettre les instructions CREATE TABLE.

Voir http://www.sqlalchemy.org/docs/05/mappers.html#many-to-many. Tout ce que vous devez faire est de spécifier les colonnes de clé étrangère pour vos tables parent, enfant et association existantes comme dans l'exemple, et spécifiez autoload=True pour remplir les autres champs sur vos tables. Si votre table d'association stocke des informations supplémentaires, comme elles le font presque toujours, vous devez simplement diviser votre relation many-to-many en deux relations many-to-one.

J'ai appris SQLAlchemy tout en travaillant avec MySQL. Avec cette base de données, j'ai toujours dû spécifier les relations de clés étrangères car elles n'étaient pas des contraintes de base de données explicites. Vous pourriez avoir de la chance et être capable de réfléchir encore plus à partir de votre base de données, mais vous préférerez peut-être utiliser quelque chose comme http://pypi.python.org/pypi/sqlautocode pour coder tout le schéma de base de données et éviter le délai de réflexion.

Questions connexes