私のアプリはwebServerと話します。ログイン時に、JSON をプルダウンし、4 つのエンティティ (それぞれ約 1000 行) を持つ CoreData を構成します。サーバー上のデータが変更されるため、ログインするたびに、既存の CoreData を更新する必要があります。レコードが存在するかどうかを確認し、必要に応じて新しいレコードを挿入するための最良の方法は何ですか?
1 に答える
更新を賢く行うには (毎回やみくもに更新するのではなく)、サーバー側にある程度のインテリジェンスが必要です。
私がする1つのアイデア。
サーバーには、4 つのエンティティの変更日のタイムスタンプを記録するマスター テーブルがあります。また、マスター テーブルを公開するための API もあります。4 つのエンティティのいずれかに変更が発生するたびに、マスター テーブルの対応するエントリも更新する必要があります。
アプリケーション側でもマスターテーブルの同じコピーを作成します。
アプリケーションの起動時に、1. で API をクエリし、2. の値と比較して、タイムスタンプがサーバー側で更新されているかどうかを確認します。
YES の場合、対応するエンティティをダウンロードして置き換えます。
より細かい制御を可能にする別のもの。
サーバー側の 4 つのエンティティにタイムスタンプ列を追加します。エントリが追加/更新されるたびに、タイムスタンプが更新されます。
指定されたタイムスタンプよりも新しいアイテムのみをフィルタリングする API をエンティティごとに準備する
アプリケーションの起動時に、2. で API をクエリして更新します。
2 番目のアプローチの欠点は、サーバー側で削除を処理できないことです。これをサポートするために、最初のアプローチのようなものを組み合わせることができるかもしれません。