1

10.000 の Book エンティティと 10.000 の Author エンティティを挿入し、それらの間に 1 対 1 の関係を設定する必要があるとします。どちらのエンティティにも bookID という属性があります。私はこれをします:

  1. bookID でソートされたすべての本を取得します
  2. bookID でソートされたすべての著者を取得します
  3. books 配列を列挙し、currentBook.bookID == currentAuthor.bookID の場合、currentBook.author = currentAuthor. すべての本についてこれを繰り返します。リレーションシップが設定された 1000 冊ごとに、コンテキストを保存します (そうしないと、さらに多くのメモリが消費されます)。

私の問題は、メモリ割り当てが行き過ぎていることです。どうすればそれを制限できますか? [fetchRequest setBatchSize:]、setFetchLimit: を setFetchOffset: と組み合わせて試してみましたが、うまくいきませんでした。

4

1 に答える 1

0

データモデルを正しく概念化していないと思います。属性「bookID」は実際には Author エンティティにあるべきではありません。また、両方の方法で 1 対 1 の関係を持つことも奇妙に思えます。Author から Book への 1 対多の関係 (1 人の著者が複数の本を書くことができる) が必要になる可能性が高く、逆方向の 1 対多の関係 (1 つの本に複数の著者がいる可能性がある) が必要になる可能性もあります。 、それはあなた次第ですが)。

于 2012-05-04T20:42:35.127 に答える