为什么Core Data难以预先填充?

时间:2010-08-02 14:30:54

标签: iphone core-data relational-database

这是一个关于Apple设计决策的哲学问题,而不是关于核心数据的问题。

为什么世界上有一个难以预先填充的模型系统是有用的?有什么好处?我知道你可以让你的程序生成sqlite文件并手动编辑它,但据我所知,如果你有任何关系,就不能这样做。

我将它与rails中使用的MVC范例进行比较,这似乎更有意义。 rails中的模型为Core Data提供了类似的抽象级别(据我所知),但它们也允许您手动(或通过脚本)将任何内容输入数据库。

我对Core Data的问题在于:因为rails似乎证明(对我而言)你可以从数据库中获得优秀的模型抽象,同时保留几种方便的方法来预先填充它,删除该功能提供了哪些可能的优势?核心数据是否更有效率?预填充所涉及的困难仅仅是其他设计选择的副作用,如果是这样,为什么没有考虑预填充?

(免责声明我真的对这些选择背后的推理感兴趣,虽然我的帖子可能暗示它,但我并不是真的在寻找“Rails与核心数据中的模型”辩论。)

1 个答案:

答案 0 :(得分:11)

因为核心数据 数据库。它是一个碰巧持久存储到磁盘的对象图,其中一种持久性格式是数据库。这意味着您需要在反向PoV中查看它。

核心数据旨在尽可能快地从该持久存储中检索对象并将其保存回来。这样做的一个副作用是持久性格式专注于使该目标更快并且与其他任何东西兼容是最好的次要。因此,SQLite文件的内部结构是针对性能而非兼容性。

我对预填充的看法是核心数据被设计为闭环系统。您可以使用Core Data轻松填充数据文件。填充Core Data SQLite文件并不比编写脚本将Oracle数据转换为CSV格式更难。

如果你留在Cocoa和核心数据中,那就不难了。您编写命令行应用程序或编辑应用程序并导入数据。从Cocoa程序员的PoV来看,这是一项简单的任务,只需几分钟。

相关问题