SQLAlchemy:在2(两)个表之间构建3种递归的一对多关系

时间:2013-11-03 23:30:57

标签: python orm sqlalchemy

梗概:

使用关系数据库(例如:SQLite), 我two tables分别映射two object types。 我们称这些表为table_atable_b和对象类AB

理想的设计:

从A类实例化的对象(例如:a_1)可以有一个或多个B对象:

Ex: a_1.bs = [b_1, b_2, b_3]

从B类实例化的对象(例如:b_1)可以有一个或多个A对象:

Ex: b_1.as = [a_8, a_9, a_11]

同样,B对象也应该从第一个关系到它的父类型A的 “backref”:

Ex: b_1.a = [a_1]

此外,如果A对象(例如:a_8)是B类实例的a之一,那么它应该具有backref:

Ex: a_8.b = [b_1]

如您所见,有2个表但它们是无限连接的。

所以:

A can have one or more Bs and each one of those Bs can have one or more As.

我尝试了SQLAlchemy ORM 文档中的各种选项,但由于缺乏经验和情况的复杂性,我很遗憾。

为了获得这个结果我需要做什么?

谢谢。

0 个答案:

没有答案