【问题标题】:Core Data Model Cascade Delete and Parent Entity核心数据模型级联删除和父实体
【发布时间】:2016-10-12 18:22:42
【问题描述】:

我有一个关于核心数据模型和级联删除规则的问题。

我的核心数据模型是这个:

如您所见,用户实体与订单实体具有“多对多”关系。 此外,Orders 实体有一个名为 Cuisines 的父实体,因为每个 Orders 都需要来自可用的 Cuisines 列表。

用户与订单关系删除规则是级联(反之为无效),因为如果删除用户对象,我希望删除所有订单。

我的问题是,如果我删除用户,美食实体会发生什么情况?

对于为其他用户下的所有订单,美食也应该可用,因此它必须持续存在。也会被删除吗?

如果是,我应该如何创建我的模型并设置删除规则以避免这种情况?

【问题讨论】:

    标签: core-data


    【解决方案1】:

    Cuisines 指定为Orders 的父实体意味着每个Orders 对象 Cuisine - 尽管是Cuisine 的特定“类型”。每个Order 具有三个属性:numOfOrdersratingname。当您删除 Order(尽管通过级联规则)时,您将删除一个具有所有三个属性的对象 - 没有要删除的单独的 Cuisines 对象。

    但您希望每个订单来自可用美食列表。所以用关系替换OrdersCuisines 之间的父/子实体链接。每个Cuisine 可以与几个不同的Orders 相关联,因此关系将是对多的。相反,每个Order 只与一个Cuisine 相关,因此反向关系将是一对一。当您删除Order 时,您希望相关的Cuisines 保留(用于其他Orders),因此删除规则将是“无效”。

    【讨论】:

    • 谢谢!那清除了它。我正在考虑按照您的建议做,只是想确定这是正确的方法。
    猜你喜欢
    • 2012-09-06
    • 1970-01-01
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多