2015-11-08 20 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

從效率的角度來看,沒有任何區別;從一個到另一個將始終需要額外的數據庫查找(或加入,如果您使用select_related)。

這裏主要考慮的可能是語義。對我而言,說汽車有引擎是更有意義的,所以這個領域將會延續到汽車模型中。

相關問題