何时不使用核心数据关系
Posted
技术标签:
【中文标题】何时不使用核心数据关系【英文标题】:When not to use a Core Data relationship 【发布时间】:2015-11-17 13:08:16 【问题描述】:我正在重新设计原型,但遇到了障碍。使用关系让生活变得轻松 - 但在这种情况下我应该使用它吗?
我倾向于不使用它。这是我的问题的简化版本。
访问(许多)(一个)客户
每次访问只能有一个客户,一个客户可以有很多次访问。
(另一个例子是客户>发票关系)
假设我的客户更改了地址,当我查看我的访问实体和关联客户时 - 我将始终拥有最新的详细信息。
如果我没有关系,而只是访问对象中的 clientName 之类的变量 - 那么您将不得不手动检查并更新每个对象。
问题:
如果我使用对象之间的关系
问题是删除 - 如果我想将我的访问对象与有效的客户端对象一起保留,那么我不能允许客户端删除。但是您当然应该能够删除客户端 - 所以我将在应用程序中包含该功能。但如果我确实删除了客户 - 我的有效客户信息与访问相关联。
因此,即使最初建立关系似乎是最好的选择 - 您确实应该在访问对象中拥有相关信息...从而避免关系?
感谢您的建议。
【问题讨论】:
这实际上是一项业务决策,而不是技术决策。如果您知道删除客户端应如何影响其他数据的规则是什么,那么关系就没有理由阻止它被实施。 【参考方案1】:您可以使用布尔标志 archived
。因此,您可以将archived
设置为YES
,而不是删除Client
实体。
【讨论】:
以上是关于何时不使用核心数据关系的主要内容,如果未能解决你的问题,请参考以下文章