0

私は Objective C と Core Data にかなり慣れていないので、プレイヤーが 1 対 1 でチームを組んで複数の試合を行い、最終的に特定の結果が得られるケースを設計するのに問題があります。

MySQL では、Player テーブル (プレイヤーのプライマリ キー、名前) とマッチ テーブル (プレイヤー A の外部キー、プレイヤー B の外部キー、結果) を作成します。

コアデータでこれを行うにはどうすればよいですか? リレーションシップを使用して、プレイヤー エンティティをマッチ エンティティに簡単に関連付けることができます。しかし、2 番目のプレーヤー ref の逆方向をモデル化するにはどうすればよいですか。一致エンティティで?

プレイヤー
名:属性
一致:関係一致

Match
Result: 属性 PlayerA: Player との関係 (<- Player.Match の逆)
PlayerB: Player との関係 (<- ???? の逆)

誰かが私にこれについてのアイデアを与えることができれば素晴らしいでしょう!

ありがとう、スティービー。

4

1 に答える 1

0

試合に特定のホーム プレーヤーとアウェー プレーヤーがいる場合は、次のように使用します。

player.homeMatches <---->> match.homePlayer
player.awayMatches <---->> match.awayPlayer

あなたはまだ持っているかもしれません:

player.matches

すべての一致で検索する必要があり、検索フィールドを AND で結合したくない場合。または、メソッド/読み取り専用プロパティ「allMatches」を提供できます。

- (NSSet *)allMatches
{
    return [[NSMutableSet setWithSet:self.homeMatches] unionSet:self.awayMatches];
}

実行時に値を提供します。もちろん、フェッチ述語を使用してこの「allMatches」プロパティで検索することはできませんが、実行時に並べ替えてアクセスすることはできます。

于 2009-10-04T08:17:55.203 に答える