我一直在我的 iOS(swift 和 objectiveC)应用程序中使用 Coredata。
现在在我的新项目中我遇到了这种情况;数据模型经常变化。例如,以前是字符串的属性变成了关系,反之亦然,字符串变成了 NSNumber,关系消失,实体与其他表分离,等等。
Coredata 仍然是最好的解决方案? 我必须始终编写迁移脚本来解决迁移问题吗?
最佳答案
Core Data 与什么相比最好?在什么轴上?易于管理数据模型迁移?查询速度?对象 <-> 存储交互?
您可以在多个轴上进行比较。
首先,观察到,在现场设备上迁移数据是一个问题。任何数据库都需要一些时间来迁移。应用程序无响应的时间。用户可以在迁移过程中杀死应用程序,认为它已经死了。因此,请注意更改模式的频率。在启动时,您将因每个无响应的应用程序而失去客户。您的同事可能不了解客户的变化无常。用户可能不太关心您的应用,因此不会经历任何类型的冗长迁移。
根据我的经验,Core Data 比大多数环境都能更好地处理迁移。其他使用 SQLite 的环境不太可能有更高的性能。使用不同的数据库?然后你要重写应用程序中的每个对象?哇!那么您的问题不仅仅是迁移问题。
从您的问题来看,您似乎正在经历模式流失。这对您的开发过程来说不是一个好兆头。在考虑更改数据库之前,我会先解决这个问题。
如果您有选择,请始终使用轻量级迁移。在您需要用于硬迁移的映射模型之前,请仔细考虑。轻量级迁移在该领域往往非常有效。这是一个需要维护的非常重要的特征。硬迁移是您的模式的非常激进的突变。我非常努力地工作以避免冗长的迁移。
关于ios - 数据模型结构频繁变化 : best way to work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36908462/