Ios 数据模型结构频繁变化:最佳工作方式

Ios 数据模型结构频繁变化:最佳工作方式,ios,objective-c,swift,core-data,database-migration,Ios,Objective C,Swift,Core Data,Database Migration,我一直在iOS(swift和Objective)应用程序中使用Coredata 现在在我的新项目中,我有这种情况;数据模型经常变化。例如,以前是字符串的属性变成了关系,反之亦然,字符串变成了NSNumber,关系消失,实体从另一个表分离,等等 Coredata仍然是最佳解决方案? 我必须始终编写迁移脚本来解决迁移问题?从我的角度来看,核心数据是最好的解决方案,即使在您需要进行硬迁移的情况下也是如此 (硬)迁移不是简单的更改,如更改实体类型 或者从实体和其他实体中删除属性。对于这种类型 迁移您需要

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

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

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

从我的角度来看,核心数据是最好的解决方案,即使在您需要进行硬迁移的情况下也是如此

  • (硬)迁移不是简单的更改,如更改实体类型 或者从实体和其他实体中删除属性。对于这种类型 迁移您需要写额外的纸条,即所谓的
  • 简单 对模型的更改(如向实体和核心数据添加新属性)将执行自动数据迁移
  • 这只是我的观点。让我们看看其他人会在这里发布什么


    与什么相比,核心数据是最好的?在什么测量轴上?易于管理数据模型迁移?查询速度?对象存储交互

    你可以在很多轴上进行比较

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

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

    从您的问题来看,听起来您正在经历模式转换。这对于您的开发过程来说不是一个好迹象。在我考虑更改数据库之前,我会先解决这个问题。 如果有选择,请始终使用轻量级迁移。在需要硬迁移的映射模型之前,请仔细考虑。轻量级迁移在现场往往非常有效。这是一个需要保持的非常重要的特征。硬迁移是模式的根本性变化。我非常努力地避免长时间的迁移