【发布时间】:2019-07-03 02:25:21
【问题描述】:
我的场景:我正在尝试建立一个数据库来跟踪不同类型节目的制作时间表。我已经使用以下模型结构对其进行了映射。
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 对于电影和电视来说是完全相同的(至少在这种情况下),所以我很犹豫要完全独立的树,因为这需要复制 @987654325 @。一个用于电视,一个用于电影,唯一的区别是外键。
在这里使用GenericForeignKey 有意义吗?哪里可以指向Episode 或Movie?我对此犹豫不决,因为听起来共识是避免通用外键,但我不知道该怎么做。
【问题讨论】:
标签: django django-models foreign-keys generic-foreign-key