0

根据文档,这非常简单:

class Article(models.Model):
    headline = models.CharField(max_length=200)
    # ...
    site = models.ForeignKey(Site)

但是如果我有一个额外的模型呢?IE:

class ArticleAttachment(models.Model):
    file = models.FileField(upload_to="foo/bar")
    # ...

ArticleAttachment() 已经与一篇文章相关联(它已经与一个站点相关联)。我还应该将外键添加到网站吗?如果是/否,为什么?

(性能不是问题。)

谢谢。

4

1 回答 1

2

例如,如果您想显示所有带有给定的文章附件,添加冗余外键只会提高性能site。否则(尤其是如果您根本不关心性能),它并不能真正帮助您,它只会引入更多的“维护”工作。您始终可以使用访问site附件的

attachment.article.site

并过滤使用

.filter(article__site="...")

因此,如果没有其他仅适用于这个附加数据库字段的复杂查询,我会放弃它。

于 2012-01-09T13:16:53.477 回答