首页 > 其他分享 >物理外键与逻辑外键(on_delete方法)

物理外键与逻辑外键(on_delete方法)

时间:2023-11-24 09:11:06浏览次数:20  
标签:逻辑 删除 models publish book 外键 delete

外键中on_delete的方法:

CASCADE:级联删除,只要删除publish,跟publish关联的book,全都被删除
SET_DEFAULT:只要删除publish,跟publish关联的book,的publish字段会变成默认值,一定要配合default使用
SET_NULL:只要删除publish,跟publish关联的book,的publish字段会变成空,一定要配合null=True使用
models.SET(add):括号中可以放个值,也可以放个函数内存地址,只要删除publish,跟publish关联的book,的publish字段会变成set设的值或执行函数

  

逻辑外键创建方法:

 

publish = models.ForeignKey(to='Publish', on_delete=models.DO_NOTHING, null=True, db_constraint=False)


models.DO_NOTHING:什么都不做,但它需要跟db_constraint=False配合,表示不建立外键约束,创建逻辑外键,不是物理外键
不建立物理外键的好处?增删查改数据快
缺点:容易出现脏数据

  

实际工作中,都不建立物理外键,都是建立逻辑外键

标签:逻辑,删除,models,publish,book,外键,delete
From: https://www.cnblogs.com/wellplayed/p/17852962.html

相关文章

  • c++本质:释放内存、new与delete、容器内是指针
    【释放内存】本质:标识符放弃对该内存的占有权。若该内存是栈内存,当所有标识符都放弃,那么系统自动重获占有权。内存依然存在,地址、值都未改变。若该内存是堆内存,当所有标识符都放弃,不delete,那么系统也无法拥有占有权。所以delete让系统重获占有权。内存依然存在,地址未变、值变为......
  • ES插入报错 索引只读:blocked by: [FORBIDDEN/12/index read-only / allow delete (ap
     ES插入报错:reason:ElasticsearchException[Elasticsearchexception[type=cluster_block_exception,reason=blockedby:[FORBIDDEN/12/indexread-only/allowdelete(api)];]]   这种大多都是因为磁盘空间不足了超过设置的阈值,一般80%所以索引变成只读了,要把空......
  • 逻辑思维与创造力
    思维是人类智慧的表现,而逻辑思维和创造力则是思维的两种重要形式。逻辑思维注重分析、推理和演绎,而创造力则强调创新、想象和发散。尽管两者在表现形式和目的上存在差异,但它们在人类思维活动中起着不可或缺的作用。一、逻辑思维逻辑思维是人脑在处理信息和问题时运用的一种能力,......
  • Centos7下创建centos-home逻辑分区
    1备份要挂载的文件夹查看home文件夹有无文件,如有文件一定要记得备份2创建逻辑分区2.1查看已有逻辑分区2.2查看磁盘分区情况2.3查看磁盘PV2.4创建逻辑分区lvcreate-nhome-l100%FREEcentos2.5查看逻辑分区情况3初始化文件系统3.1初始化为ext类型mkfs.ext4/dev/mapper/centos-ho......
  • Django 修改默认外键关联到其他字段
    默认值关联classOrg(models.Model):"""组织架构"""name=models.CharField("组织机构名称",max_length=100,default='')pid=models.ForeignKey('self',verbose_name="上级",on_dele......
  • SQL DELETE 语句:删除表中记录的语法和示例,以及 SQL SELECT TOP、LIMIT、FETCH FIRST
    SQLDELETE语句SQLDELETE语句用于删除表中的现有记录。DELETE语法DELETEFROM表名WHERE条件;注意:在删除表中的记录时要小心!请注意DELETE语句中的WHERE子句。WHERE子句指定应删除哪些记录。如果省略WHERE子句,将会删除表中的所有记录!演示数据库以下是示例中使用的Cus......
  • Centos7.9 扩展逻辑卷
    1、Centos7.9扩展逻辑卷1.1、查看df-hfdisk-lpvdisplayvgdisplaycat/etc/fstab[root@tcentos79~]#df-hFilesystemSizeUsedAvailUse%Mountedondevtmpfs7.8G07.8G0%/devtmpfs7.8G07.......
  • shell 中| && || () {} 用法以及shell的逻辑与或非
    前面几个比较简单|管道符,基本用法就是command1|command2,就是把前面的输出作为后面的输入&&就是合并两个命令,第一个命令成功的话才会执行第二个命令||不管第一个命令成功与否,第二个命令始终执行(这里说错了,应该是第一个执行不成功,才会执行第二个)重点学习()运算......
  • 深度剖析GadgetInspector执行逻辑(下)
    前言接着前面分析gadgetInspector工具GadgetInspectorgadgetinspector.PassthroughDiscovery类和上面类似的格式,存在有discover/save这两个主要的方法MethodCallDiscoveryClassVisitor类定义了一个属性name,重写了对应的处理方法visit方法:记录下类该的类名Metho......
  • 洛谷 P9869 [NOIP 2023] 三值逻辑 题解
    https://www.luogu.com.cn/problem/P9869?contestId=145259看到要给变量赋初始值,还是T,F,U之类的,容易想到2-SAT。设\(1\simn+m\)的点表示\(x_1,x_2,\dots,x_{n+m}\)为T的点,其中\(x_{k+n}(1\leqk\leqm)\)表示在第\(k\)次操作被操作的变量的值(操作......