【问题标题】:Database Creation/Management Strategy : CoreData or File数据库创建/管理策略:CoreData 或 File
【发布时间】:2015-01-17 09:57:15
【问题描述】:

我需要将数据(精灵属性列表)导入一个用 Swift 编写的 iOS8 应用程序。数据包含在一个 20 列和大约 10000 行的 excel 类型文件中(因此,一张表有 20 个字段和 10000 条数据库术语记录,字段可以是 num、string 或 boolean)。某些行(大多数行)不会对每一列都有价值。在开发阶段必须非常定期地进行此导入以更新(实际上替换所有)数据。

我不需要在应用程序中对这组数据进行任何更改,并且我需要避免让用户触发此导入。我只需要选择其中的一小部分(1 到 100)并将它们加载到字典数组中,其中键将是列标签。但我需要能够随时访问完整的数据集(不仅仅是应用启动时的数据块,之后没有其他数据)。

数据不能硬编码并直接管理到 Xcode 中,因为它们是由创建我需要导入的平面文件的关系数据库生成的。

我想知道最好的策略是什么(因为我是 Swift 和 iOS 的新手,所以我想直接学习最好的方法):

  • 我是否应该使用 Core Data 并将所有内容加载到一个实体中,然后在需要时获取我的数据子集?
  • 我是否应该使用包含在某处的文本文件(或任何其他格式)并在需要时从中读取?
  • 或者还有其他聪明漂亮的选择吗?

【问题讨论】:

  • 看看 NSAtomicStore。

标签: database file swift core-data ios8


【解决方案1】:

在尝试了几个选项之后,CoreData + csv 文件的混合是我这种简单数据库管理的最佳答案。

  • 我在关系数据库中管理我的数据(在我的例子中是 4D)
  • 我已将关系数据库结构复制到 CoreData 中
  • 我以 CSV 格式导出每个文件,并借助这个 SwiftCSV 工具 (https://github.com/naoty/SwiftCSV) 将它们加载到 CoreData 中

【讨论】: