在一些项目中,我实现了两个表的用户请求映射(在运行时),这两个表通过 1 对 n 关系连接(一个表具有 ForeignKey 字段)。
根据我从文档中得到的信息,通常的方法是在带有 backref 的非外键表上使用 mapped_collection 作为 collection_class 将 orm.relation 添加到映射属性,以便最终两个表 orm 对象相互映射在一个属性上(一个通过其上使用的 orm.relation 的 collection_class 有一个集合,另一个有一个由 backref 放置在其上的属性)。
我处于这样一种情况,有时我确实希望 ForeignKey 端具有映射到另一个表的属性(那个,由 backref 创建),这取决于用户的决定(他可能只是想拥有那个侧映射)。
现在我想知道我是否也可以简单地在 ForeignKey 表上使用 orm.relation,所以我可能会像以前一样在 non-foreignkey 表上使用一个 mapped_collection 但没有backref 和另一个 orm外键表上的 .relation 替换该自动反向引用(在两个表上创建两个 orm.relations 从两侧相互映射)。
这会给我带来麻烦吗?结果是否等效(仅与带有 backref 的非外键表上的一个 orm.relation 相同)?是否有另一种方法可以仅在 ForeignKey 端进行映射,而不必将字典与该 backref 一起映射到非 ForeignKey 表上?