创建高效的数据库查询考虑这个(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