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