让我用一个小的老式 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
一对一的关系?你确定一个Contact
不能是几个的主要联系人Deal
?
无论如何都要详细说明。让我们讨论什么不是非常核心数据。DealContact
.
那个实体有什么意义?基本上,您已Deal
连接到许多Contact
,包括主要的Contact
. 中的附加字段DealContact
肯定与 theDeal
或 a相关Contact
,那么为什么要为它们提供专用实体呢?
这就是我看到实体的方式:
Deal
- stuff // from Deal & from DealContact
- contacts ->> Contact
- primarycontact -> Contract
Contact
- stuff
- deals ->> Deal.contacts
- dealsprimary ->> Deal.primarycontact
Core Data 将创建必要的关系表来跟踪多对多关系。Core Data 在这方面做得很好。
当然我不知道你申请的所有细节,所以我的建议是,好吧,一个建议。而已。它可能适合您的需求,也可能不适合。但考虑到你所说的,它应该对你有用。