【问题标题】:What is the efficient way to connect models with a one to one relation?将模型与一对一关系连接起来的有效方法是什么?
【发布时间】:2015-11-08 14:38:56
【问题描述】:

考虑这两个模型,

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) 

如果在一个模型上建立关系而不是在另一个模型上建立关系,是否会有任何差异或差异是什么。

【问题讨论】:

    标签: python django one-to-one relationships


    【解决方案1】:

    从效率的角度来看完全没有区别;从一个到另一个总是需要额外的数据库查找(或者如果你使用 select_related 进行连接,则需要一个连接)。

    这里的主要考虑可能是语义。对我来说,说汽车有引擎更有意义,因此该领域将继续使用 Car 模型。

    【讨论】:

      猜你喜欢
      • 2017-04-11
      • 2021-04-07
      • 2021-01-27
      • 2012-09-23
      • 2021-12-09
      • 2020-02-11
      • 2019-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多