gpt4 book ai didi

core-data - 多对多结构中的删除

转载 作者:行者123 更新时间:2023-12-03 11:51:01 27 4
gpt4 key购买 nike

我只是想很快检查一下。假设我在数据模型中有两个实体:目录和产品。它们彼此之间具有多对多关系,并且两者都是必需的(目录必须至少具有一个产品,并且所有产品都必须至少属于一个目录)。因此,如果我要删除一个产品,那么它的删除应该为Nullify。

但是对于目录,删除策略应该是什么?如果删除目录,则并非其所有产品都必须排他性地属于它。一个产品可能属于多个目录。因此,我绝对不应该使用Cascade。但是,Nullify是否足够?如果我最终悬挂了不属于目录的产品怎么办? Core Data内置了哪些功能可以解决多对多模式的问题?我需要修改架构吗?

最佳答案

Nullify就足够了,多对多听起来不错。但是,核心数据不能直接强制执行您想要的特定约束(删除孤儿),因此您需要自己进行一些清理。

具体来说,在您的实体类中实现willSave,并进行每个实体测试:是否删除?并且,我没有相关的(产品/目录)吗?如果是这样,请删除自己。 (未删除的测试对于避免willSave的无限循环很重要。)

这会将孤立目录或产品的删除推迟到节省时间为止。这可能不是问题。

关于core-data - 多对多结构中的删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5049164/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com