Books表关系的建立

1.出版社表(Publish)和图书表(Book)关系__一对多:

 

 

 

2.图书表(Book)和作者表(Author)是多对多关系:

 

 

 

3.作者表(Author)和作者详情表(AuthorDetail)是一对一关系:

 

 

 注:

  一对多的关系一旦确立,关联字段写在多的一方
  to_field默认不写,关联到Publish主键
  on_delete = models.CASCADE 级联删除(删除关联数据,与之关联也删除)
  on_delete = models.DO_NOTHING 删除关联数据,引发错误IntegrityError
  on_delete = models.SET_NULL 删除关联数据,与之关联的值设置为null(前提该字段可以为空才可以设置)
  on_delete = models.SET_DEFAULT 删除关联数据,与之关联的值设置为默认值(前提该字段需要设置默认值)
  on_delete = models.SET 删除关联数据:
  a.与之关联的值设置为指定值,设置:models.SET(值)
  b.与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)
  表断关联:
  db_constraint=False:逻辑上表之间是由关联的,不会影响ORM的使用,实质上没有外键联系,单表的增删不会受外键影响
  
   publish = models.ForeignKey(to='Publish', on_delete=models.DO_NOTHING, db_constraint=False)
 

posted on 2023-03-20 22:00  与太阳肩并肩  阅读(40)  评论(0编辑  收藏  举报

导航