考虑两个实体 Author 和 Book ,它们是从外部数据库导入到我的 CoreData 存储中的多对多关系。我感到困惑的是,我是否应该为每个作者创建一个新的 NSManagedObject ,即使该作者已经在商店中?我怎么知道两个同名作者是同一个人?例如,我可以得到 10 个 John Smiths,其中 5 个是同一个人,但是在导入数据时无法检查这一点,对吗?假设我想为其中一个 John Smiths 执行 fetchrequest,我仍然会得到 10 个结果。他也可能以 J. Smith 或 J.A. 的身份出现。史密斯。但 J. Smith 也可能是 Jenny Smith。
我应该为每个作者创建一个 NSManagedObject ,而不用担心可能的重复,还是有其他方法可以解决这个问题?
Best Answer-推荐答案 strong>
How do I even know that two authors with the same name are the same person?
你没有,这就是你问题的核心。您需要允许重复名称,因为名称(通常)不是唯一的。任何基于名称避免或删除重复项的技术解决方案几乎都可以保证破坏您的数据。
尚不清楚您的数据来自何处,因此很难说最好的解决方法是什么。如果这是用户输入的数据,让用户编辑现有作者以添加或删除标题,以防止重复。提供合并两个条目的选项,以防用户意外创建重复项。
如果数据来自某种在线服务,您几乎必须接受他们提供给您的数据。如果他们有重复的作者条目,你就无法可靠地做任何事情。你可以很容易地找到重复的名字,但这并不意味着他们是同一个人。
关于ios - 防止重复的 NSManagedObjects,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/22533943/
|