Django: поиск максимальной пары строк в определенной таблице - PullRequest
0 голосов
/ 05 ноября 2011

Я пытаюсь найти лучшее решение в django ORM для типичной проблемы поиска лучших комбинаций связанных данных.У меня есть следующие модели:

class Player (models.Model):
    nickname = models.CharField(max_length=200)

class Match (models.Model):
    winner = models.IntegerField()

class MatchPlayer(models.Model):
    player = models.ForeignKey(Player)
    match = models.ForeignKey(Match)
    team = models.IntegerField()

Итак, по сути, у нас есть матчи определенной игры, где две команды с более чем 1 человеком играют друг против друга, и всегда есть 1 победитель (1 команда, несколькоигроки).

Команды не имеют фиксированного состава, то есть игроки, которые играют в качестве союзников в игре, могут играть за врагов в следующей игре (или вообще не играть).

Iхотите найти ПАРУ игроков (или, в идеале, в более общем виде, любого N игроков) с самым высоким процентом выигрыша, когда они играют вместе (или, опять же, в идеале, парами игроков и их процентом выигрыша) в django.

Обычно в SQL я присоединяюсь к столу игрока с самим собой, где matchplayer_1.match = matchplayer_2.match и matchplayer_1.player! = Matchplayer_2.player группируют по полям обоих игроков и получают информацию о match.winner.Однако в Django, насколько я знаю, я не могу произвольно соединить таблицу с самим собой, если в модели нет явных отношений.

Есть ли способ обойти эту проблему?

Заранее спасибо!

Бруно

(Обновление: добавлены модели выше)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...