創建高效的數據庫查詢考慮這個(Django的)模型:分層模型(Django的)
class Source(models.Model):
# Some other fields
type = models.ForeignKey('Type')
class Type(models.Model):
# Some other fields
parent = models.ForeignKey('self')
這種模式有一個外鍵本身,從而創造一個層次。
比方說,我們有以下層次:
Website
Blog
News
Social Network
Q&A
Forum
Radio
Government radio
Pirate radio
Commercial radio
Internet radio
如何有效地查詢,這樣,如果我通過Type
選擇Source
,我也找回Sources
其中有一個Type
是給定類型的子?
我嘗試遍歷整個樹,但這並不十分有效。
另一種選擇是使用ManyToManyField並通過覆蓋save()方法自動附加父類型。例如,如果選擇「博客」,則還會創建「網站」的記錄。但這對我來說似乎有點矯枉過正。
雖然這個例子與Django並不相關。 – 2015-12-07 16:40:20
@Centralniak:爲什麼?你不能用這個Django的東西來運行SQL查詢嗎? – 2015-12-07 17:33:49