SQLAlchemy 2 In Practice - Chapter 4 - Many-To-Many Relationships
a day ago
- 多对多关系需要一个连接表来关联两个表,因为仅靠外键无法表示这种关系。
- 在SQLAlchemy中,连接表使用SQLAlchemy Core的Table类定义,并包含复合主键。
- 关系通过'secondary'参数引用连接表,并且两侧都使用back_populates进行关联。
- 该关系支持通过列表操作(如append和remove)自动插入和删除连接表条目。
- 涉及多对多关系的查询会自动进行两步连接(通过连接表),并可以与其他关系组合使用。
- 删除实体时会自动移除其在连接表中的链接,并且可以通过列表移除方法解除链接。
- 引入了Alembic用于数据库迁移,设置包括env.py配置和迁移脚本的自动生成。
- 导入脚本已更新为使用delete()而不是drop_all/create_all,并且Alembic管理数据库模式。