ORM 的模型与模型之间的关系
ORM 的模型与模型之间的关系
多对一关系
多个模型都与其中一个模型有关联,如:一个项目有多个接口,一个接口有多个测试用例
Project 模型的 modules 字段不会在数据库的表显示,用于表示Project 模型与 Module 模型之间的关系,查询project. module可得到该项目下关联的所有Model 数据,反之,查询module.project 可得到该模块下所关联的所有项目
ForeignKey 表示关联的外表
为增强代码可读性,分别在两个模型中添加关系字段,使用 back_populates 参数关联,数据为关联模型的字段名称
backref 和 back_populates的区别:
~ back_populates 需要双向显示声明,backref 只需在一个模型中声明
~ back_populates 较麻烦,backref 更简单
~ back_populates 更具有可读性,更容易知道各个表之间的关系
一对一关系
自引用关系
多对多关系
需要借助第三个表来声明关系,调用db.Table () ,并存储数据
适用场景
1、关系表只存储2个关联表的id 作为外键,没有其它信息
2、关联表并不能作为模型操作
多对多关系需要获取额外内容时,要创建第三个表
适用场景
1、关系表除了存储2个关联表的 id 还有其它信息,比如说选课时间、分数等;
2、关联表并不能作为模型操作;
有更好的建议,欢迎留言啊~