为多对多关系添加属性?

时间:2017-11-10 15:13:30

标签: ios core-data many-to-many

我一直在使用Core Data来建模我的数据库。我有两个实体,有多对多的关系。每个人可以拥有许多地址,并且在每个地址上可以有多个人居住。

现在我想为这段关系添加属性。例如,一个人 - 地址将有标签回家,其他人 - 地址可以有标签妈妈的地方。

我无法在地址实体上添加此属性,因为相同的地址将为不同的人设置不同的标签。

由于关系的建模方式与NSSet类似,我看不到按照自己的意愿行事。

这可以以某种方式完成吗?

1 个答案:

答案 0 :(得分:2)

无法直接向多对多关系添加属性。 Apple推荐的方法(参见CoreData编程指南中的"Modelling a relationship based on its semantics")是替换与您添加属性的中间实体的多对多关系。您现有的每个实体都与新实体有一对多的关系。

在您的情况下,您可能会遇到以下情况:

Person     <--->> PersonAddressDetails <<--->    Address

然后,您可以将label属性添加到PersonAddressDetails实体。