1

我的公司正在开发一款 iOS 接单应用程序,该应用程序需要与基于云的 API 同步数据。数据是相关的,我们正在努力寻找一种利用能够快速同步的 ORM 的解决方案。循环下载数据、创建/获取模型和建立关系需要很长时间。单个订单记录可能与订单行、客户、发货、产品和其他实体有关系,并且同步过程需要为每个新/更新的记录获取/创建所有这些相关实体,而且速度非常慢。

我们已经有一个使用 ActiveJDBC 作为 ORM 的应用程序的 Java 版本。我们能够将数据直接插入底层 SQLite 数据库,而 ActiveJDBC 能够使用我们 API 数据库中已经存在的 ID 和外键。这使我们能够比构建模型对象更快地插入下载的数据。

据我所知,SharkORM 不允许我们为 ID 和外键使用备用数据库列。有没有办法使用 SharkORM(或使用不同的 iOS ORM)做类似的事情?

感谢您的任何帮助。

4

1 回答 1

1

不幸的是,Id 列目前是固定的,无法更改。

您可以使用原始执行函数来提供一个 SQL 块,但要实现这一点需要相当多的努力。

为了让事情进展得更快,你可以试试这些:

  1. 批处理成事务
  2. 禁用事件模型(使事情变得...快得多)
  3. 暂时删除索引
  4. 执行编译指示,关闭同步功能(非常快但有潜在危险)

此外,您可以忽略 Id 列并创建自己的列并为其编制索引,它的基本工作方式几乎没有什么区别。

于 2017-05-10T19:45:10.997 回答