【发布时间】:2011-02-26 06:33:53
【问题描述】:
我正在建立一个模型,其中两名玩家参与比赛。我倾向于这种模式:
def match(models.Model):
player = ForeignKey(Player)
opponent = ForeignKey(Player)
score = PositiveSmallIntegerField()
games_won = PositiveSmallIntegerField()
games_lost = PositiveSmallIntegerField()
won_match = BooleanField()
但是,其中涉及到统计数据,如果我想完整地描述比赛,则需要再次拉动才能找到对手的匹配记录。
或者,我可以设置模型以包含完整的统计信息:
def match(models.Model):
home_player = ForeignKey(Player)
away_player = ForeignKey(Player)
home_player_score = PositiveSmallIntegerField()
away_player_score = PositiveSmallIntegerField()
...
但这似乎同样糟糕,因为我必须为一名球员做两个逻辑集(找出他在 home_player 时的得分和他在 away_player 时的得分) .
最后的选择是每次匹配进行两次插入,都具有完整的统计数据,并在表中保留冗余数据。
似乎有更好的方法,因此我投票 SO。
【问题讨论】: