1

私のモデルには、多対多の関係を持つ 2 つのエンティティ (カテゴリとニュース) があります (つまり、カテゴリには多くのニュースがあり、ニュース記事は 1 つ以上のカテゴリに属している可能性があります)。

以下は私のデザインです:

  • エンティティ 1:

カテゴリ (属性: カテゴリ ID、タイトル、ショー、位置)、「ニュース」というニュース エンティティとの関係。

「ニュース」関係は宛先が「ニュース」、逆関係が「カテゴリ」、タイプ対多関係、削除ルールがカスケードです。

  • エンティティ 2:

ニュース (属性: ニュース ID、引用、コンテンツ、リンク)、「カテゴリ」と呼ばれるカテゴリ エンティティとの関係。

"categories" の関係は宛先が "Category"、逆の関係が "news"、タイプが対多の関係、削除ルールが nullify です。

オブジェクト グラフは次のようになります。

ニュース <<------------->> カテゴリー

私の質問は:

1> 私の設計したモデルは良いですか?

2>設計したモデルに Arcoding します。ニュース オブジェクトを削除すると、コンテキストの例は次のようになります。

id newsObjectToDelete = .... [managedObjectContext deleteObject:newsObjectToDelete];

newsObjectToDelete が属する Category オブジェクトは、関連 "News" の NSSet から newsObjectToDelete を自動的に削除しますか。

3>「ニュース」が少なくとも1つの「カテゴリ」に属している必要があるという制約が必要な場合。その制約を実装する方法

少し早いですがお礼を。下手な英語でごめんなさい

4

1 に答える 1

1
  1. これがアプリに適しているかどうかを判断するのは難しいですが、かなり標準的な関係に見えます。

  2. オブジェクトを削除すると、すべての Core Data 関係から自動的に削除されます。削除されたオブジェクトへのダングリング参照について心配する必要はありません。Core Data がそれを処理します。

  3. Core Data は、実際にはエラーを生成する (および保存をブロックする) か、保存中に何らかの自動アクションを実行することしかできません。次のいずれかを実行できます。

    (モデル内またはコード内で) 検証を使用することは、開発およびデバッグ プロセス中にのみ役立つことに注意してください。-save:管理対象オブジェクト コンテキストでの呼び出しは失敗し、エラーが返さNOれて生成されます。これは最後の手段であり、永続ストアに悪いデータが入らないようにするためのものです。このような検証の失敗は、コードの他の部分が間違っていて、不正なオブジェクトを生成していることを示しています。

于 2012-09-22T16:09:44.407 に答える