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