首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django ForeignKey on_delete -组合与聚合

Django ForeignKey on_delete -组合与聚合
EN

Stack Overflow用户
提问于 2020-01-11 20:44:18
回答 1查看 79关注 0票数 1

on_delete=models.CASCADE是否代表组合和models.PROTECT聚合?

由于聚合和组合之间的主要区别之一是,对于组合,如果组合类被删除,则组合类的所有对象都将按结果删除,而由于聚合不会发生这种情况,上面的陈述是否正确?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-11 20:54:23

CASCADEPROTECT都代表组合,因为两者都暗示如果父对象被删除,子对象就不能存在。如果子对象存在,并且如您所说,PROTECT将删除所有子对象,则CASCADE会阻止您删除父对象

SET_NULLSET_DEFAULTSET表示聚合,因为在每种情况下,当父模型对象被删除时,“子”模型对象都可以继续存在

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59694500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档