1

私の会社は、データをクラウドベースの API と同期する必要がある iOS 注文アプリを開発しています。データはリレーショナルであり、迅速に同期できる ORM を利用するソリューションを見つけるのに苦労しています。データのダウンロード、モデルの作成/取得、および関係の構築をループ処理するのに時間がかかりすぎています。1 つの注文レコードに、注文明細行、顧客、出荷、製品、およびその他のエンティティとの関係が含まれる場合があります。同期プロセスでは、新しいレコードまたは更新されたレコードごとに、これらの関連エンティティをすべて取得または作成する必要があり、非常に時間がかかります。

ActiveJDBC を ORM として使用するアプリケーションの Java バージョンが既にあります。基礎となる SQLite データベースにデータを直接挿入でき、ActiveJDBC は API データベースに既に存在する ID と外部キーを使用できます。これにより、モデル オブジェクトを構築するよりもはるかに高速に、ダウンロードしたデータを挿入できます。

私の知る限り、SharkORM では、ID と外部キーに別のデータベース列を使用することはできません。SharkORM (または別の iOS ORM) を使用して同様のことを行う方法はありますか?

ご協力ありがとうございます。

4

1 に答える 1

1

残念ながら、Id 列は現在固定されており、変更できません。

raw execute 関数を使用して SQL ブロックを提供できますが、これを実現するにはかなりの労力が必要です。

物事をより速く進めるために、これらを試すことができます:

  1. トランザクションへのバッチ処理
  2. イベント モデルを無効にします (処理が大幅に高速化されます)。
  3. インデックスを一時的に削除する
  4. プラグマを実行し、同期機能をオフにします (非常に高速ですが、潜在的に危険です)。

また、Id 列を無視して独自の列を作成し、それにインデックスを付けることができます。基本的な動作方法にほとんど違いはありません。

于 2017-05-10T19:45:10.997 に答える