【发布时间】:2013-04-01 14:22:14
【问题描述】:
我正在创建一个应用程序,该应用程序需要“离线”持久化通过 OData Web 服务公开的数据。 OData 服务让我可以访问底层数据库的所有表,以及所有相关的数据库字段,例如 ID。
此外,我已经有一个可以使用的 SQLite 数据库架构。
我的问题是,我已经问过两次了,是直接通过 SQLite(使用 FMDB)将 Web 服务数据存储在设备上,还是利用 Core Data 更好?
如果我使用 Core Data,那么我将失去主键和外键的关系优势,但会获得自动嵌套/填充的 NSManagedObjects 的优势。我不完全确定如何最好地重新创建我的数据对象的关系性质。
如果我使用 SQLite,我可以直接插入/更新 Web 服务调用的结果,并自动从现有的外键列中获取关系。缺点是我可能需要手动将结果封装在 POCO 对象中。
我现在的直觉告诉我 SQLite,但似乎社区在任何/所有情况下都以压倒性多数指向 Core Data。如果是 Core Data,我如何最好地创建和维护对象关系(尤其是当它们是 1->many 时)
如果任何与 Apple 相关的方面存在问题,此应用将不会进入应用商店。
【问题讨论】:
-
在 Core Data 中创建对象关系的最佳方式是......在 Core Data 中创建对象关系。您只需将其添加到托管对象模型中即可创建一对一和一对多。
-
@borrrden 那么我的问题是,有没有一种简单的方法可以在导入每个表后填充这些关系?我需要一个复杂的 2-pass 算法吗?
标签: ios sqlite core-data odata