2
有4個模型的models.py。 其標準的記錄是:嵌套鏈vs重複信息
class Main(models.Model):
stuff = models.IntegerField()
class Second(models.Model):
nested = models.ForeignKey(Main)
stuff = models.IntegerField()
class Third(models.Model):
nested = models.ForeignKey(Second)
stuff = models.IntegerField()
class Last(models.Model):
nested = models.ForeignKey(Third)
stuff = models.IntegerField()
並沒有最後模型的另一個變體:
class Last(models.Model):
nested1 = models.ForeignKey(Main)
nested2 = models.ForeignKey(Second)
nested = models.ForeignKey(Third)
stuff = models.IntegerField()
將這種方式節省一些數據庫負載?
nested1和nested2中的信息會重複Secod和Third中的字段,甚至可能會過時(幸運的是,在我的情況下,由於數據不會被更改,只會添加新的字段)。 但是,從我的想法,它可能會節省數據庫負載,當我查找某個主要記錄的所有最後記錄。或者當我只爲特定的最後一項查找Main.id時。
我對不對?
它會真的保存負載還是有更好的做法?
你的模型的目的是什麼?有時直接連接兩個模型實際上只通過其他模型連接是不切實際的。我知道你的問題是關於數據庫負載的,但是通常有一個選項在邏輯上更有意義 –