小さな古い学校のASCIIモデルで物事を書き留めさせてください。
Deal
- stuff
Contact
- stuff
- dealcontacts ->> DealContact
- primarydealcontact -> DealContact
DealContact
- stuff
- deal -> Deal
- contacts ->> Contact
- primary -> Contact
わかった。
このようなものはあまりコアデータではありません。
まず最初に。
Deal:と逆の関係を持たないという点はわかりませんDealContact.deal。関連するがない状態が残っDealていないことを確認するには、削除を手動で処理する必要があります。その逆の関係はあなたにほとんど何の費用もかかりません。DealContactDeal
Contact:なぜContact.primarydealcontract1対1の関係なのですか?あなたは確かにいくつかContactの主要な連絡先になることはできませんかDeal?
とにかくそのすべてを詳しく説明します。あまりコアデータ化されていないものについて説明しましょう。DealContact。
そのエンティティのポイントは何ですか?基本的に、プライマリを含むDeal多くのに接続しています。の追加フィールドは、またはに関連していることが最も確実です。それでは、なぜそれらの専用エンティティなのですか?ContactContactDealContactDealContact
これは私がエンティティを見る方法です:
Deal
- stuff // from Deal & from DealContact
- contacts ->> Contact
- primarycontact -> Contract
Contact
- stuff
- deals ->> Deal.contacts
- dealsprimary ->> Deal.primarycontact
Core Dataは、多対多の関係を追跡するために必要な関係テーブルを作成します。CoreDataはそれを非常にうまく行っています。
もちろん、私はあなたのアプリケーションのすべての詳細を知りません、それで私の提案は、まあ、提案です。これ以上何もない。それはあなたのニーズに合うかもしれませんし、そうでないかもしれません。しかし、あなたが言ったことを考えると、それはあなたのために働くはずです。