ios - 多个表和关系

标签 ios sqlite fmdb

在 iOS 项目中处理多个表的最佳方式和方法是什么?FMDB 是否支持表之间的关系? 我应该使用 Coredata 还是 FMDB 包装器?

最佳答案

无论您想做什么,都可以使用 Core Data 或 FMDB + SQLite。

基本上,如果以下任一条件成立,我建议使用 SQLite。

  • 性能确实很重要
  • 您已经从其他地方拥有了一个巨大的 SQLite 数据库
  • 您计划以某种方式使数据库跨平台

看看this博客文章了解 SQLite 和 Core Data 之间的区别。

但是,在大多数情况下,Core Data 是更好的选择。 Core Data 是一个很棒的框架,可以帮助您保持一致性(使用对象图)并且非常易于使用。它因其性能而受到了不好的评价,但实际上并没有那么糟糕。例如,过度获取是一种常见的用于提高性能的方法。这意味着获取大量数据,然后过滤掉您真正想要的数据。这在 iOS 设备上效果很好,因为现在它们的 RAM 实际上非常好。使用它!

此外,如果您计划使用 Core Data,您应该了解它不是 SQLite 的包装器。您不应该像平常那样考虑表格。在核心数据中,您有一个包含实体而不是表格的对象图。

结论:

使用 Core Data,除非您在其他地方已经有 SQLite 数据库表单,或者性能非常重要(我的意思是非常重要)。

关于ios - 多个表和关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19929177/

相关文章:

ios - 创建另一个新节点时,SKShapeNode 中的节点重新出现

ios - 添加了文本编辑器/SwiftUi

ios - Objective-C: "format string is not a string literal (potentially insecure)"宏警告

perl - 异常 : Please criticize my code 后重试操作

android - android SQLite 中的更新功能不起作用

objective-c - FMDatabaseQueue 中的外键

ios - FMDB:更新时数据库被锁定

ios - 使用 aws-sdk-ios 设置 aws-lex 请求属性

ios - 如何在本地通知到达时更新数据库 BackgroundMode?

ios - SQLite fmdb : If I can't delete a column, 删除列数据可以吗?