2012-01-09 1 views
0

по docu это довольно прямо вперед:каркас сайта django: Какие модели должны быть связаны с сайтом (иностранным, многотомным)?

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() уже связан со статьей (который уже связан с сайтом). Должен ли я добавить дополнительный ключ на сайт? и если да/нет, почему?

(производительность не является проблемой.)

ТНХ.

ответ

2

Добавление избыточного внешнего ключа будет способствовать повышению производительности, если вы хотите, например, отобразить все вложения статей с заданным site. В противном случае (особенно если вы вообще не заботитесь о производительности), это вам действительно не помогает, оно просто вводит больше «обслуживания». Вы всегда можете получить доступ к site прикрепления с помощью

attachment.article.site 

и фильтр с использованием

.filter(article__site="...") 

Так что, если нет другого сложного запроса, который работает только с этим дополнительным полем базы данных, я бы уронить его.

+0

+1 а что такое светильники, django-admin? – klemens

 Смежные вопросы

  • Нет связанных вопросов^_^