尝试设置实体关系,但很难找到我需要的关系:
我有一个实体,人。人有两个关系,超级朋友和次朋友。每个实体可以有很多朋友(一个人实体),所以sub_friend就是多对多关系。我不确定超级朋友是什么;一对一或多对多的关系。
示例:Bill是Fred和Ted的朋友。爱丽丝也是弗雷德的朋友。
这是否意味着弗雷德的超级朋友需要多对多?
编辑:
实体人员比尔的副朋友指向弗雷德和泰德。
实体人爱丽丝的子友指向弗雷德。
那么弗雷德的超级朋友与实体比尔和实体爱丽丝有什么关系呢?如果我拉起实体弗雷德,它只会指向比尔或爱丽丝吗?我认为这只是回答了我的问题。我需要实体弗雷德指向比尔和爱丽丝这么多。我希望每个实体都是独一无二的。
如果我不关心弗雷德的超级朋友是谁,该怎么办?我只会通过sub_friends横向“向下”,而不是通过super_friend / s“备份”。
编辑2:
由于困惑,让我扩大了我的需求:我需要横向整理实体。
所以说我是比尔,我需要看看比尔的所有朋友(弗雷德和特德)。我选择弗雷德。然后我需要找到Fred的所有sub_friends并选择一个,等等。我需要能够做n次。
只有朋友关系的解决方案不允许我将朋友分开。说弗雷德知道约翰和史黛西。当我查询Fred时,我不知道John是否在上面(super_friend并且不关心)或者John是否为sub_friend(需要在表视图中显示以供选择)。
答案 0 :(得分:2)
请看这个图表:
就像你看到比尔有很多次级朋友一样,弗雷德是很多实体的副手 所以这是一种多对多的关系。
编辑
我认为这很明显,但是sub_friend是super_friend的反向关系,因为如果Bill将Fred作为sub_friend,那么fred将Bill作为super_friend。
答案 1 :(得分:2)
正如我已经说过的,我不了解你的整个亚/超级朋友的概念,设计当然取决于你。但从常识的角度来看,如果比尔是弗雷德的朋友,弗雷德也是比尔的朋友,那么这是不合逻辑的。他们都是人物实体。所以在核心数据术语中,我会有一个指向Person实体的朋友关系,并且是一个反向关系?
查看此核心数据实体:
在关系的检查器中,您会看到反向关系:
答案 2 :(得分:0)
假设sub_friend和super_friend是彼此的反转,则sub_friend是1:n关系,super_friend是1:1。如果你用1代替n,因为你正在看一个实体,那么你得到1:1,一个实体只能引用一个超级。
在属性方面,sub_friends会变成NSSet,而super_friend则是Person *。
答案 3 :(得分:0)
确实,你的评论只回答了你自己的问题=)你刚才说弗雷德有2个超级朋友。显然有很多关系。
进一步扩展:我在大脑中改变了你的关系名称,因为据我所知,sub_friend只是意味着一个直接的朋友,而super_friend意味着朋友的朋友。
许多关系自然适合,因为如果你只有一个朋友的朋友就没有任何意义。