我有一个场景,其中有一个实体可以有 X 个项目,具体取决于用户添加的内容。我有另一个实体需要与第一个实体的任意数量的关系。这很简单,只需创建从第二个实体到第一个实体的一对多关系。
我遇到的问题是,如果第二个实体可以采用第一个实体中每个实体的多个数怎么办?我不确定该怎么做。
例子: 实体 A 包含:x、y、z 实体 B 可以包含(例如):3 个 x 和 7 个 y。或 x 的 8 个,y 的 7 个,z 的 2 个。一切都取决于用户在应用程序中的选择。
最佳答案
CoreData 不会让您建模(直接)关系,在这种关系中您可以多次将同一对象添加到一对多关系。
在您的情况下,您有 2 个我能想到的选项,都需要您为新的中间件关系实体建模。
假设您有实体 A
和 B
。您现在需要创建一个实体 AtoB
,其中 AtoB
结构为:
关系:
a :与 A
实体的一对一关系
b :与 B
实体
- 第一个选项将让您手动保留您喜欢的对象
B
的数量在属性bCount
中:
- 每次用户将
A
链接到B
时,您将增加现有关系的计数或创建一个具有适当的新AtoB
对象值(value)观(谨防重复)
- 每次用户将
- 第二个选项是让用户在将
A
实体链接到B
实体时添加尽可能多的AtoB
关系(无唯一性):
- 需要时手动或分组获取这些项目的数量
在大多数情况下我更喜欢第一个选项。
A
实体和 B
实体将与 AtoB
实体具有一对多关系。
您可以保留从 B
到 A
的对多关系,因为我确信它有其目的。
关于ios - 核心数据一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22341163/