为什么我需要2个或更多Core Data模型?

时间:2012-04-29 18:32:54

标签: ios core-data

我很想知道谁使用多个核心数据模型以及为什么,有什么好处,我正在开发一个我认为可以从多个模型中受益的应用程序,但我不确定其他好处。

我的即将到来的应用程序将用于iPad和iPhone的另一个版本,iPad有3个主要内容,iPhone只有一个也在iPad上,因此通过将其隔离到不同的核心数据模型可能保持更改我的两个应用程序中的模型将更容易。

虽然我确实有两个实体,但我可以将它们复制或有一个大型模型。

有什么建议吗?

无论如何,这当然不是常见情况,其他场景可能会导致您创建多个Core Data模型?

2 个答案:

答案 0 :(得分:9)

有时将不同类型的数据保存在不同的商店中是有意义的。例如,像产品目录一样工作的应用程序可能有一个商店是产品数据库,另一个商店跟踪用户的收藏夹,当前订单和历史记录。这使得在不影响用户数据的情况下更新产品数据库相对容易,并且无需复制整个产品数据库即可备份用户数据。

您使用多个商店的另一种情况是存储相同类型的数据。例如,基于文档的应用程序通常会为每个文档创建一个单独的商店 - 商店可能 文档。

更新:我上面写的内容使用单独的商店,但您询问了使用单独的模型。 Core Data实际上允许您定义单独的模型,然后在运行时将它们合并在一起,以便在同一个商店(或多个商店)中使用。所以,为了清楚起见,模型定义了实体及它们之间的关系。 store 是使用模型中定义的模式实际保存数据的位置。您可能会将复杂的模型分解为几个较小的模型,只是为了简化操作,并在您随着时间的推移修改模型时帮助迁移数据,或者您可能会使用多个模型并将它们分开,因为您计划使用包含的不同商店如上所述,不同类型的数据。

答案 1 :(得分:3)

我建议只使用1个核心数据模型。如果将它们分开,您将无法使用Core Data的许多功能,例如关系(数据存储中的对象之间)等。即使您现在没有看到需要,也可能来想要稍后添加到应用程序的想法。

您仍然可以为iPad和iPhone使用相同的核心数据模型,只需忽略您未使用iPhone的部分(直到您收到添加缺失部分的功能请求,您很可能会这样做)。然后你就可以了,并且已经掌握了数据。

仅在极端情况下才值得使用单独的数据模型,例如,如果您要下载只读的现有数据集等。您可以将只读数据集与用户设置/数据分开等

祝你好运!