2015-11-08 3 views
0

Рассмотрим эти две модели,Каков эффективный способ подключения моделей с отношением «один к одному»?

class Engine(models.Model): 
    name = models.CharField(max_length=25) 


class Car(models.Model): 
    name = models.CharField(max_length=25) 

Эти две модели могут быть связаны с OneToOneField следующим

class Engine(models.Model): 
    name = models.CharField(max_length=25) 
    car = models.OneToOneField(Car) 

или

class Car(models.Model): 
    name = models.CharField(max_length=25) 
    engine = models.OneToOneField(Engine) 

Будет ли какая-то разница или, что было бы разница, если связь установлена ​​на одной модели над другой.

ответ

3

Нет никакой разницы с точки зрения эффективности; получение от одного к другому всегда потребует дополнительного поиска db (или соединение, если вы сделаете это с select_related).

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

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

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