【问题标题】:How do I model relative scores between entities in CoreData如何在 CoreData 中对实体之间的相对分数进行建模
【发布时间】:2010-01-18 00:26:17
【问题描述】:

我是 CoreData 的新手,正在努力找出正确的方法来建模特定关系。我有一个名为“朋友”的实体,具有一些属性,例如“姓名”、“年龄”、“性别”等。

我希望能够对 Friend 的两个实例之间的分数进行建模,但我无法弄清楚最好的方法。

比如3个朋友A、B、C,可能会有这样的分数:

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

或矩阵形式:

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

我想出的最好的方法是拥有一个具有“值”整数属性的“分数”实体以及与“朋友A”和“朋友B”的两个关系——但如果这是正确的方法,我应该如何建模逆Friend 实体上的关系?

非常感谢您的帮助!

【问题讨论】:

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


    【解决方案1】:

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

    在 Friend 和 Score 之间创建多对多关系。

    在分数方面,您将最小和最大计数设置为 2。

    将朋友端设置为无最小值和无最大值。

    这是假设好友的顺序相对于分数并不重要。

    【讨论】:

    • 感谢马库斯 - 这非常有效。您假设关系中的朋友顺序不重要就我的问题而言是正确的。
    【解决方案2】:

    可以使用您的方法通过从 Friend 到 Score 的两个对多关系(可能称为“scoresA”和“scoresB”)创建逆。

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

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

    【讨论】:

      【解决方案3】:

      我正在从事一个类似的项目,并且我一直在想一种有趣的方式来实现它,那就是有一个“游戏”实体,它与获胜者具有一对一的关系。

      我还没有学习的是如何显示对给定朋友的获胜次数。

      【讨论】:

        猜你喜欢
        • 2017-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多