これは仮定を単純化した演習/宿題ですか、それとも実際のアプリケーションをモデル化していますか? たとえば、プレイヤーは時間の経過とともにチームを変更する可能性があります。それをどのようにモデル化しますか? 簡単にするために、プレイヤーがチームを変更しないと仮定しましょう。私はあなたのケースを次のようにモデル化します:
class Team(models.Model):
name = models.CharField(max_length=100)
# other attributes that do not change over time
class Player(models.Model):
name = models.CharField(max_length=100)
team = models.ForeignKey(Team)
# other attributes that do not change over time
class Match(models.Model):
venue = models.CharField(max_length=100)
date = models.DateField()
# other non-redundant attributes
class PlayerMatch(models.Model):
player = models.ForeignKey(Player)
match = models.ForeignKey(Match)
points = models.IntegerField()
assists = models.IntegerField()
rebounds = models.IntegerField()
ここで重要な点は、統計が にPlayerMatch
のみ保持されることです。Player
inまたは inでそれらを繰り返す必要はありません。Match
それは冗長です。代わりに、これらのデータ構造を考慮して、試合またはプレーヤーの統計を計算できます。