【问题标题】:Pre-fill SQLite database with Core Data using Django使用 Django 用 Core Data 预填充 SQLite 数据库
【发布时间】:2011-04-15 08:22:59
【问题描述】:

我想使用 Django 作为前端数据输入器来构建一个预填充的 sqlite 数据库;但是我已经读过这个site 和 StackOverflow,这并不容易做到;并且需要使用 CSV 文件。

如果您的数据库非常小,那很好 - 但如果您使用具有关系的数据(即:客户、订单、销售人员等)预先填充它怎么办;或者,如果您正在构建的数据库需要大量数据输入(超过 1,000 条记录)。

我的应用程序/数据库将非常大,并且有很多带有多个引用/关系的预填充数据——我真的不想将所有这些东西重新输入到 CSV 文件或模拟器中,我想使用 Django 是一种将大量相关数据导入 iphone 应用程序的快速而肮脏的方式。

这有点让人怀疑 Core Data 是否真的值得,学习曲线真的很高,语法可能很麻烦,我正在考虑只使用 FMDatabase,除了我无法显示 LIMIT/OFFSET成批正确的数据行(任何有关如何执行此操作的提示的帮助或提示都会很棒!)。

因此,如果您想使用 Core Data 和大型数据库预填充数据库,那么最好的前进路线是什么?

【问题讨论】:

    标签: sqlite core-data


    【解决方案1】:

    您可能想查看可可/可可触摸的Active Record 端口。我以前做过这样的应用程序,我们(客户和我)选择做的是在第一次应用程序启动时从 XML 文件中导入数据。这个想法是,由于解析器内置在应用程序中,如果我们选择在以后进行更新,我们可以进行 OVA 更新。数据确实有相当复杂的关系,但我认为 Core Data 仍然是前进的方向。

    我只使用过一次原始 SQLite,那是在我们在 iPhone 上使用 CoreData 之前。此外,您还应该考虑您的解决方案是如何进行由 CoreData 处理的架构迁移。

    混合解决方案是将数据加载到模拟器中的 Core Data 中,然后将该 SQLite 数据库与应用一起发布,并在初始加载时将其复制到应用的文档目录中。两全其美。

    祝你好运

    【讨论】:

    • 乔纳森,谢谢你的回答——我担心我永远不会得到答案。我喜欢 Active Record 的想法,并将进一步审查它。我还在学习 Core Data;整个迁移的事情让我害怕,但我相信我可以学会它。
    • 我见过人们谈论使用 FMDatabase,但是你如何在 tableView 上错开记录(克隆 NSFetchController *或任何它的名称)——唯一的问题是编写所有长期关系。我想 Core Data 或混合模型是最好的前进方式。
    • Marcus Zara 关于核心数据的书pragprog.com/titles/mzcd/core-data 相当有用,而且电子书版的价格也不贵,大约 20 美元。他谈到了版本控制、迁移,还有一章是关于在多线程环境中处理核心数据的,这对于进行大型导入至关重要。 CoreData 确实值得学习
    • 在 coredata 之前的几天,我的蛮力方法是在视图转换期间开始在后台加载数据。到动画结束时,数据被加载到一个数组中,然后我将其用作数据源的支持集合。使用 NSFetchController 更容易 :) 加上它可以处理部分和数据存储更改。
    猜你喜欢
    • 2012-05-05
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 2012-04-25
    • 1970-01-01
    相关资源
    最近更新 更多