10

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

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

虽然我确实有几个实体,我都需要,所以我可以复制它们或拥有一个大模型。

有什么建议么 ?

无论如何,这当然不是一种常见的情况,还有哪些其他情况可能会导致您创建多个 Core Data 模型?

4

2 回答 2

10

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

另一种使用多个存储的场景是存储相​​同类型的数据。例如,基于文档的应用程序通常会为每个文档创建一个单独的存储区——存储区可能就是文档。

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

于 2012-04-29T18:53:40.963 回答
3

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

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

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

祝你好运!

于 2012-04-29T18:53:32.950 回答