0

さまざまなエンティティからデータの結合を取得したい。多数のエンティティ (場所、イベントなどのさまざまな種類のタグ) があり、「すべてのタグ」(つまり、すべてのタグ エンティティの結合) を示すテーブル ビューのデータが必要です。この種のユース ケースでは、Core Data を使用してフェッチ リクエストを作成するにはどうすればよいですか?

Core Data が ORM ではないことはわかっていますが、上記の説明が十分でない場合は、対応するデータベースのユース ケースを説明します。イベント、場所、人物など、さまざまなテーブルがあり、これらのさまざまなテーブルの結果を UNION したいと考えています。UNION は列ではなく行を連結することに注意してください。

明らかな解決策の 1 つは、さまざまなエンティティからデータを個別に取得してから、NSMutableArray を連結することです。もっと効率の良い方法がないか検討中です。

4

1 に答える 1

0

フェッチ リクエストで複数のエンティティ タイプをフェッチする方法はありません ...

ただし、「結合」したいエンティティがモデル内に同じ基本クラスを持っている場合を除きます ( 以外NSManagedObject)。

したがって、すべてのエンティティがたとえば名前付きの基本クラスから継承さTagれる場合、それらすべてをまとめて取得できます。

ただし、これにより、実際のデータベース ファイルにこれらすべてのエンティティの統合テーブル (クラス間の交差が小さい場合は非常にまばらなテーブル) が作成されます。

あなたの場合、たとえば「人」と「場所」の間に実際の接続がないため、これは実行できない場合があります。または、これがパフォーマンスの問題を引き起こすと判断する場合があります。

もう1つの解決策は、(あなたが提案したように)エンティティごとにフェッチリクエストを作成することです。

于 2013-04-29T09:42:53.423 に答える