什么是反向外键和普通外键

  • 本文关键字: django database foreign-keys
  • 更新时间 :
  • 英文 :


这是Django noob的一个问题,我的问题是这样的;

正常的外键和反向关系之间的区别是什么?区别是什么。我一直在想;

方法1

class State(models.Model):
name = models.CharField()
class Country(models.Model):
name = models.CharField()
state = models.ForeignKey(State) # normal foreignkey

方法2

class Country(models.Model):
name = models.CharField()
class State(models.Model):
name = models.ForeignKey(Country) # reverse relation

方法1和方法2的主要区别是什么以及何时使用。

这基本上是一个与数据库相关的问题,我鼓励您进一步阅读

Django中的外键关系在数据库设计中转化为1对多关系。

在你的例子和现实世界中,一个州只能有一个国家和一个国家。但是一个国家可以有无限(或n(个州。

因此,在我们的国家模式中,我们不可能有无限的领域来代表所有的州。

我们能做的就是告诉每个州他们属于哪个国家

所以这是正确的做法。

class Country(models.Model):
name = models.CharField()
class State(models.Model):
name = models.CharField()
country = models.ForeignKey(Country)

在你写的第一个方法中,每个国家可以有一个州,但每个州可以属于多个国家。

相关内容

  • 没有找到相关文章

最新更新