我对核心数据模型和级联删除规则有疑问。
我的核心数据模型就是这个:
正如您所看到的,用户实体与订单实体之间存在“To To Many”关系。 Orders Entity还有一个名为Cuisines的父实体,因为每个Order都需要来自可用的美食列表。
用户到订单关系删除规则是级联(反向无效),因为如果删除用户对象,我希望删除所有订单。
我的问题是,如果我删除用户,美食实体会发生什么?
菜单应该适用于为其他用户下的所有订单,因此必须坚持。它会被删除吗?
如果是,我该如何创建我的模型并设置删除规则以避免这种情况?
答案 0 :(得分:0)
将struct RowContent { //TODO: needs better name
let title: String
var description: String
}
var rows = [RowContent]()
func transferData(descriptionTranferred: String, identifier: String) {
let rowsToUpdate = rows.filter{ $0.title == identifier }
if rowsToUpdate.isEmpty {
print("No rows to update.")
return
}
for var row in rowsToUpdate {
row.description = descriptionTranferred
}
}
指定为Cuisines
的父实体意味着每个Orders
对象 a Orders
- 尽管是特定的&#34}。类型" Cuisine
。每个Cuisine
都有三个属性:Order
,numOfOrders
和rating
。当您删除name
(虽然通过级联规则)时,您将删除一个具有所有三个属性的对象 - 没有要删除的单独Order
对象。
但是你希望每个订单都是来自的可用美食列表。因此,请使用关系替换Cuisines
和Orders
之间的父/子实体链接。每个Cuisines
都可以与几个不同的Cuisine
相关联,因此这种关系可能会很多。相反,每个Orders
仅涉及一个Order
,因此反比关系将为1。当您删除Cuisine
时,您希望保留相关的Order
(以便在其他Cuisines
中使用),以便删除规则为" nullify"。