ios - 数据模型结构频繁变化 : best way to work

标签 ios objective-c swift core-data database-migration

我一直在我的 iOS(swift 和 objectiveC)应用程序中使用 Coredata。

现在在我的新项目中我遇到了这种情况;数据模型经常变化。例如,以前是字符串的属性变成了关系,反之亦然,字符串变成了 NSNumber,关系消失,实体与其他表分离,等等。

Coredata 仍然是最好的解决方案? 我必须始终编写迁移脚本来解决迁移问题吗?

最佳答案

Core Data 与什么相比最好?在什么轴上?易于管理数据模型迁移?查询速度?对象 <-> 存储交互?

您可以在多个轴上进行比较。

首先,观察到,在现场设备上迁移数据是一个问题。任何数据库都需要一些时间来迁移。应用程序无响应的时间。用户可以在迁移过程中杀死应用程序,认为它已经死了。因此,请注意更改模式的频率。在启动时,您将因每个无响应的应用程序而失去客户。您的同事可能不了解客户的变化无常。用户可能不太关心您的应用,因此不会经历任何类型的冗长迁移。

根据我的经验,Core Data 比大多数环境都能更好地处理迁移。其他使用 SQLite 的环境不太可能有更高的性能。使用不同的数据库?然后你要重写应用程序中的每个对象?哇!那么您的问题不仅仅是迁移问题。

从您的问题来看,您似乎正在经历模式流失。这对您的开发过程来说不是一个好兆头。在考虑更改数据库之前,我会先解决这个问题。

如果您有选择,请始终使用轻量级迁移。在您需要用于硬迁移的映射模型之前,请仔细考虑。轻量级迁移在该领域往往非常有效。这是一个需要维护的非常重要的特征。硬迁移是您的模式的非常激进的突变。我非常努力地工作以避免冗长的迁移。

关于ios - 数据模型结构频繁变化 : best way to work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36908462/

相关文章:

ios - 适用于 iOS 的 Azure Pipeline 中的 dSYM 路径

iphone - 在 UITableView 中搜索后突出显示搜索文本

objective-c - 在 Objective C 中使用原子属性 : Any side effects?

ios - UIColletionView 什么时候调用他的数据源和委托(delegate)方法

swift - 在 JPEG 图像上绘制一条简单的线

ios - 使用 CAShapeLayer 创建的动画圆的 CAGradientLayer 问题

ios - Firebase 数据库和 Swift : Save location data in an array

objective-c - 在基于 View 的 NSTableView 中的 NSTextField 之间共享 NSDateFormatter?

ios - 加载 View Controller ,但直到第二次点击 tableview 才出现

swift - 从纵向移动到横向时如何修复 UIcollectionView 中的项目宽度?