如何在CoreData中的实体之间建模相对分数

时间:2010-01-18 00:26:17

标签: objective-c cocoa core-data orm entity-relationship

我是CoreData的新手,正在努力找出建立特定关系的正确方法。我有一个名为'Friend'的实体,有一些属性,如'name','age','sex'等。

我希望能够在朋友的两个实例之间建立分数,并且无法理解我最好的方法。

例如,对于名为A,B和C的3个朋友,可能会有这样的分数:

A <-> B: 3
A <-> C: 2
B <-> C: 4

或以矩阵形式:

  A B C
A 0 3 2
B 3 0 4
C 2 4 0

我想出的最好的方法是让'Score'实体具有'value'整数属性以及两个与'friendA'和'friendB'的关系 - 但如果这是正确的方法,我应该如何建模逆朋友实体的关系?

非常感谢您的任何帮助!

3 个答案:

答案 0 :(得分:0)

如果没有关于整个设计的更多细节,您对Score实体的想法是我能想到的最好的。然而,反比关系很简单。

在朋友和分数之间创建多对多关系。

在分数侧,您将最小和最大计数设置为2.

将朋友方设置为无分钟且无最大值

这假设与得分相关的朋友的顺序并不重要。

答案 1 :(得分:0)

这与Marcus建议的略有不同,因为您必须将两个集合组合以获取特定朋友的所有Score对象(或者如果您想要查看特定Score对象是否与特定关联,则检查两个集合朋友)。

您采取的方法应该是您在应用程序中更容易使用的方法。然而,马库斯可能能够提供他的方法更好的原因,因为他真的写了关于核心数据的书。

答案 2 :(得分:0)

我正在开展一个类似的项目,我一直在想一个有趣的方法来实现它将是一个“游戏”实体,它与赢家有一对一的关系。

我还要学习的是如何显示对某位朋友的胜利次数。