這是一個來自 Django 菜鳥的問題,我的問題是這樣的;
正常外鍵和反向關系有什么區別,有什么區別。我一直認為;
方法一
class State(models.Model):
name = models.CharField()
class Country(models.Model):
name = models.CharField()
state = models.ForeignKey(State) # normal foreignkey
方法二
class Country(models.Model):
name = models.CharField()
class State(models.Model):
name = models.ForeignKey(Country) # reverse relation
方法1和2之間的主要區別是什么以及何時使用它。
uj5u.com熱心網友回復:
這基本上是一個與資料庫相關的問題,我鼓勵您進一步閱讀它。
Django 中的外鍵關系轉換為資料庫設計中的一對多關系。
在您的示例和現實世界中,1 個州只能有 1 個國家和一個國家。但是一個國家可以有無限(或n)個州。
所以在我們的國家模型中,我們不能有無限的欄位來代表所有的州。
我們能做的就是告訴每個州他們屬于哪個國家。
所以這是在這里做的正確方法。
class Country(models.Model):
name = models.CharField()
class State(models.Model):
name = models.CharField()
country = models.ForeignKey(Country)
在您撰寫的第一種方法中,每個國家可以有一個州,但每個州可以屬于多個國家。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/504050.html
上一篇:如何SUM()列并寫入資料表
