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、关联表并不能作为模型操作;

      

 

 

 

 

 

 

 

 

 

 

 

   

 

  

 

posted @ 2023-05-22 14:55  哩子吖  阅读(30)  评论(0)    收藏  举报