我的场景:我正在尝试建立一个数据库来跟踪不同类型节目的制作时间表。我已经使用以下模型结构进行了映射。
class Studio(models.Model):
...
class Series(models.Model):
studio = models.ForeignKey(Studio)
...
class Season(models.Model):
series = models.ForeignKey(Series)
...
class Episode(models.Model):
season = models.ForeignKey(Season)
...
class Production(models.Model):
episode = models.ForeignKey(Episode)
但我现在也对跟踪电影的制作感兴趣。但这提出了一个挑战,因为电影没有与电视相同的树结构。像这样的东西会更合适:
class Studio(models.Model):
...
class Movie(models.Model):
studio = models.ForeignKey(Studio)
...
class Production(models.Model):
movie = models.ForeignKey(Movie)
这里的问题是电影Production
和Studio
电视(至少在这种情况下)完全相同,所以我很犹豫是否拥有完全独立的树,因为这需要复制Production
. 一个用于电视,一个用于电影,唯一的区别是外键。
在这里使用 a 有意义GenericForeignKey
吗?一个产品可以指向一个Episode
或Movie
?我对此犹豫不决,因为听起来共识是避免使用通用外键,但我不知道该怎么做。