SQLALchemy ORM 的关联关系之 ORM 中的一对多/多对一
SQLALchemy ORM 的关联关系之 ORM 中的一对多/多对一
- 关系类型
- 使用 relationship()
- 一对多(One-to-Many)
- 示例
- 多对一(Many-to-One)
- 注意
关系类型
在 SQLAlchemy 中,最常见的几种关系类型包括:
- 一对一(One-to-One):这种关系表示一个表中的每一行都与另一个表中的至多一行相关联。
- 一对多(One-to-Many):也称为外键关系,表示一个表中的每一行可以与另一个表中的多行相关联。
- 多对一(Many-to-One):这实际上是一对多的反向关系,表示多个表中的行可以与另一个表中的单一行相关联。
- 多对多(Many-to-Many):表示两个表中的行可以以任意方式相互关联,通常通过一个关联表来实现。
使用 relationship()
relationship() 函数通过配置参数来定义这些关系。下面是一些常见的参数:
backref:为关系的另一端创建一个反向引用。这样,你可以从关系的任何一方访问另一方primaryjoin:定义主连接条件,通常不需要手动设置,因为 SQLAlchemy 可以根据外键自动推断。secondary:对于多对多关系,指定关联表的名称。secondaryjoin:在多对多关系中,定义与关联表的连接条件。uselist:当设置为 False 时,表示这是一个一对一或多对一关系,返回的将是单个对象而不是列表。cascade
