У меня есть ситуация, когда я моделирую футбольный матч, и каждый матч имеет ряд событий, связанных с ним, которые связаны с тем, что происходило во время игры.Так что-то вроде этого:
class Event(models.Model):
time = models.IntegerField()
class Meta:
abstract = True
class Goal(Event):
scorer = models.ForeignKey('Player')
class PitchInvasion(Event):
number_of_people = models.IntegerField()
class FootballMatch(models.Model):
events = models.ForeignKey('Event')
Простите за надуманный пример, но он показывает, что эти подклассы Event
могут быть чем угодно.Затем я хочу уметь запрашивать все эти события и заказывать их вовремя, чтобы получить хронологическое представление о том, что произошло в этом матче.
Однако, с abstract = True
, Event
объекты заканчиваются на pitchinvasion_set
, goal_set
и так далее,.Будет ли это решено установкой abstract = False
и использованием конкретного наследования?Я читал, что делать это - - плохая идея, так как он вводит дополнительное соединение .
Какой лучший способ справиться с подобными ситуациями?