1

ユーザーがタイトル付きのドキュメントを作成し、それに著者を割り当てることができるアプリケーションがあります。新しいオブジェクトがリストからインポートされたときに、重複したオブジェクトがコア データ データベースに入力されないようにしようとしています。私はApples documentationの提案に従おうとしています。これは、インポートされるすべてのオブジェクトをロードすることを提案し、データベースにクエリを実行して、それらのオブジェクトのいずれかが既に存在するかどうかを確認し、重複を適切に処理します。彼らの例では、単一の属性からクエリを実行しています。

[fetchRequest setPredicate: [NSPredicate predicateWithFormat: @"(employeeID IN %@)", employeeIDs]];

ただし、私の場合は、一意のオブジェクトを定義する 2 つの属性があります。タイトルと作成者です。だから私は単に使用することはできません:

[fetchRequest setPredicate: [NSPredicate predicateWithFormat: @"(title IN %@) AND (author IN %@)", titleList, authorList]];

一連の or ステートメントを使用できることはわかっていますが、それは非効率的です。

正しいタイトルと著者の組み合わせでオブジェクトだけを効率的に取得する方法についてのアイデアはありますか?

4

1 に答える 1

0

エンティティが 2 つ必要なようです。ドキュメントと著者。Document には title プロパティと Author との関係があります。次に、インポート時に2段階にする必要がありますが、それほど悪くはありません.

まず、すべての新しい作成者をインポートし、最初に既存の作成者を確認します。

次に、既存のドキュメントを除外し、作成者との関係を作成して、新しいドキュメントを処理します。

この状況では、これ以上賢くする必要はないと思います-あなたはそれを複雑にするだけです.

于 2013-04-30T19:18:23.313 に答える