关于用法CoreData:关系或id

时间:2013-07-25 10:59:40

标签: ios core-data

我对框架CoreData的正确使用有一个快速的问题。

简介:我有一个带有一些UITableViewControllers的应用程序,提供不同的实体。

1 - 事件列表 - 实体“ResponseEventsItem”
每个事件都有相互关联的记录:
- spakers(实体“ResponseEventsSpeakersItem”) - 每条记录只有一个父级 - ResponseEventsItem
- locations(实体“ResponseEventsSpeakersItem”) - 每条记录只有一个父级 - ResponseEventsItem
- schedule(实体“ResponseEventsSpeakersItem”) - 每条记录只有一个父级 - ResponseEventsItem,以及其他相关记录:ResponseSpeakersItem和/或ResponseLocationsItem
- 赞助商(实体“ResponseEventsSponsorsItem”) - 每条记录只有一个父级 - ResponseEventsItem
2 - 关于城镇(实体“ResponseCityAboutItem”)
3 - 景点(实体“ResponseSightsItem”)
4 - 酒店(实体“ResponseHotelsItem”) - 可以与ResponseBonusesItem相关 5 - fastfood(实体“ResponseFoodsItem”) - 可以与ResponseBonusesItem相关 6 - 娱乐(实体“ResponseEntertainmentsItem”) - 可以与ResponseBonusesItem相关 7 - 特殊优惠(实体“ResponseBonusesItem”) - 此记录与“ResponseEventsItem”和(“ResponseHotelsItem”或“ResponseFoodsItem”)相关

问题:使用框架CoreData的最佳方法是什么?

1 - 创建单个存储(存储NSPersistentStore)并将所有内容加载到其中并根据核心关系建立连接(例如,关系到许多ResponseEventsItem.locations - > [ResponseLocationsItem])

要么

2 - 或创建每个单独核心的单独存储(但在这种特殊情况下,我们将无法使用关系,因为关系仅存在于一个给定存储中)并确保通过ID完成相关数据的选择,如在常规SQL数据库中(以mysql为例)。

当我问最好的方法是什么时,我实际上意味着什么是最有效和最常见的方式(最快的响应时间)?如果所有数据只位于一个存储器中,存储器是否有可能过载?

1 个答案:

答案 0 :(得分:0)

简答:选项1

通常,您将使用一个NSPersistentStore来管理所有这些实体及其关系。此外,这也是最简单的方法。