0

3つの異なるエンドポイントの下で同じItemオブジェクトを返すサーバーAPIがあります。

  • /新着/
  • /おすすめされた/
  • /図書館/

同じアイテムが新しいリストと推奨リストの両方に表示される可能性があります。

データベース内のアイテムの1つの大きなプールを維持しながら、どのアイテムがどのエンドポイントからのものであるかを追跡し、それらを3つの異なる画面として表示する必要があります。このための良いモデルは何でしょうか?

4

1 に答える 1

0

超正規化を行うこともできますが、これらが 3 つの分類のみであると思われる場合は、それらをエンティティのブール フィールドとして追加し、どのエンドポイントから来たかに応じて各フィールドをチェック済みとしてマークすることができます。以下にいくつかの手順を示します。

  1. 各エンドポイントからアイテムをダウンロードする
  2. エンティティのサーバー ID で Core Data の各アイテムを検索します。エンティティが Core Data にまだ存在しない場合は、作成します
  3. サーバー レコードから取得したエンティティ フィールドを設定します。
  4. 「新しい」エンドポイントから来た場合は、「新しい」ブールフィールドを YES に設定します。「推奨」からの場合は、「推奨」ブール値フィールドを YES に設定します。
  5. エンティティを保存する
  6. 各ビューでフェッチを実行するときは、述語を次のいずれかに設定するだけです。

    [NSPredicate predicateWithFormat:@"new = 1"];

    [NSPredicate predicateWithFormat:@"recommended = 1"];

于 2012-10-03T05:06:06.883 に答える