根据docu,这非常简单:
class Article(models.Model):
headline = models.CharField(max_length=200)
# ...
site = models.ForeignKey(Site)
但是,如果我有一个额外的模型怎么办?即:
class ArticleAttachment(models.Model):
file = models.FileField(upload_to="foo/bar")
# ...
ArticleAttachment()已与文章关联(已与网站关联)。我还应该将外键添加到网站吗?如果是/否,为什么?
(表现不是问题。)
THX。
答案 0 :(得分:2)
如果要显示具有给定site
的所有文章附件,则添加冗余外键只会有助于提高性能。否则(特别是如果你根本不关心表现),它并没有真正帮助你,它只是引入了更多"维护"工作。您始终可以使用
site
attachment.article.site
并使用
过滤.filter(article__site="...")
因此,如果没有其他复杂的查询只适用于这个额外的数据库字段,我会放弃它。