核心数据设置多个相似子对象的反向关系?

时间:2012-08-04 16:29:19

标签: core-data

我遇到了核心数据模型的问题。我想有一个名为TherapySession的实体有两个情绪事件 - 开始和结束。为此,我已经为子对象定义了两个关系:

enter image description here

然而,我还想创建一个反向关系,其中每个Mood对象都会知道它的父疗法会话。 我不确定如果定义了多个相同类型的关系,如何正确创建子对象和父对象之间的反向关系。在我的情况下,反向关系指向“startMood” “疗程的财产:

enter image description here

似乎我做错了什么,但我无法指出如何解决这个问题。如果我为治疗添加一种结束情绪,并且核心数据会尝试创建反向关系,那么它会覆盖startMood关系吗?

感谢您的任何澄清!我知道可以通过添加一组对象,然后按日期对集合进行排序来避免这种情况,但我希望避免为每个对象执行此操作。

2 个答案:

答案 0 :(得分:3)

一种解决方案是坚持使用简单的多对一关系mood以及实体Mood中指示开始或结束的附加属性。

这也更灵活 - 将来在不同的治疗点等情况下引入更多情绪并不需要改变数据模型是微不足道的。

答案 1 :(得分:2)

我不确定这是否是正确的方法,但我总是最终创建两个反向关系,例如startMoodInverseendMoodInverse。 (然后,您可以在代码中添加一个属性,该属性返回其中任何一个非零为therapySession。)