何时不使用核心数据关系

When not to use a Core Data relationship

我正在重新设计原型,但遇到了障碍。使用关系让生活变得轻松 - 但在这种情况下我应该使用它吗?

我倾向于不使用它。这是我的问题的简化版本。

访问(很多)<<-->(一个)客户

每次访问只能有1个客户,一个客户可以有多个访问。

(另一个例子是客户 <->> 发票关系)

假设我的客户更改了地址,当我查看我的 Visit 实体和关联的客户时 - 我将始终拥有最新的详细信息。

如果我没有关系,而只是访问对象中的一个变量,如 clientName - 那么您将不得不手动检查并更新每个对象。

问题:

如果我使用对象之间的关系

问题是删除 - 如果我想保留我的 Visit 对象和有效的客户端对象,那么我不能允许客户端删除。但你肯定应该能够删除客户端 - 所以我会在应用程序中包含该功能。但是,如果我确实删除了客户 - 与访问相关联的有效客户信息就会消失。

因此,尽管建立关系似乎是最初要做的最好的事情 - 您确实应该在访问对象中拥有相关信息......从而摆脱关系?

感谢任何建议。

您可以使用布尔标志 archived。因此,不是删除 Client 实体,而是将 archived 设置为 YES