0

2つのエンティティがある場合。FooandBar。そして、Fooには2つの特性があります。タイプBarのbar1およびbar2。今、FooはBarと1対多の関係を持っていますか?少なくとも、Core Dataのモデルとしてモデル化する必要がありますか?それとも、2つの1対1の関係ですか?逆を使用してCoreDataで適切に設定するにはどうすればよいですか?私が理解している1対多の関係ですが、最後の関係タイプではありませんか?それも可能ですか、それとも良い方法ですか?

4

3 に答える 3

2

Foo には 2 つのプロパティがあります。Bar 型の bar1 と bar2。Foo は Bar に対して 1 対多のリレーションシップを持っていますか?

いいえ、Foo には Bar との 2 つの関係があり、それらの関係には と という名前が付けられbar1bar2います。それらが「1対1」か「対多」かは、指定方法によって異なります。モデル内のそれぞれを選択し、「to-many」チェックボックスがチェックされているかどうかを確認します。

少なくとも Core Data のようにモデル化する必要がありますか?

それは、モデル化しようとしているものによって異なります。特定のオブジェクトに対して 2 つの別個の関係 (2 つの異なる "対 1" の関係) が必要ですか、それともオブジェクトのグループに対して 1 つの関係 (1 つの "対多" の関係) が必要ですか? 物事を明確にするのに役立つ例を次に示します...

ビジネスには、0 人以上の従業員がいる場合があります。ビジネスには、1 人の最高経営責任者と 1 人の取締役会の議長もいます。employeesそのため、Business エンティティには、Person エンティティと名前が付けられた「対多」の関係がある場合があります。ceoまた、 andという名前の「対 1」の関係を持つこともできます。これもchairmanPerson との関係です。これらは必ずしも必要ではないかもしれません。CEO と会長はどちらも従業員であるため、一連の従業員を検索し、役職でフィルタリングすることで見つけることができます。ただし、それらを頻繁に使用し、そのたびに他の何千人もの従業員を検索する必要がない場合は、それらを個別の関係として持つと便利です。

逆を使用して Core Data で適切に設定するにはどうすればよいですか?

繰り返しますが、それはモデル化しているものによって異なります。たとえば、関係の逆は、employeesPerson のemployer「対 1」関係になります。

于 2012-05-22T16:55:06.637 に答える
1

エンティティにはいくつかの異なる種類のプロパティがあり、属性と関係があります (およびフェッチされたプロパティですが、それは重要ではありません)。Foo と Bar は、Bar プロパティを持つ Foo で作成した 2 つのクラスのようです。次に、それらをコア データ モデルのエンティティとして同化します。

通常、物事は逆に行われます。Core Data モデル エディタでエンティティを作成します。次に、関係を作成してエンティティをリンクします。Foo から Bar への関係を追加する場合は、Bar から Foo への逆の関係を作成することをお勧めします。

  1. Foo から Bar への関係を作成する
  2. Bar から Foo への関係を作成する
  3. その最後の関係を選択し、その逆を最初の関係に設定します

Xcode で一致する NSManagedObject サブクラス Foo と Bar を生成する場合は、エンティティを選択し、Xcode エディタ メニューで [Create NSManagedObject subclasses] を選択します。

次に、モデルのセットアップ方法に一致する適切な属性を持つ 2 つのクラスであることがわかります。

私はCore Dataに関する本を執筆しており、このすべてがより詳細に説明されています。

于 2012-05-22T16:14:54.180 に答える
0

これは 2 つの 1 対 1 の関係です。逆にするには、逆フィールドでエンティティを選択するだけです(関係を作成するとき)。

于 2012-05-22T15:54:45.523 に答える