gpt4 book ai didi

Django 通用外键 - 考虑到 SQL 性能是好是坏?

转载 作者:行者123 更新时间:2023-11-29 11:18:29 24 4
gpt4 key购买 nike

我有一个模型 A,它包含一个通用外键关系,并限制选择其他 3 个模型(将它们视为 BCD) 在同一个应用程序中。我知道我们不能使用 filterget 或任何其他查询集操作的通用外键的局限性。

所以要实现这样的功能,A.objects.filter(generic_object__name="foo") 我必须首先过滤 B、C 和 D 的对象作为查询集,迭代它们并使用泛型反向关系以获取 A 对象作为列表(不是查询集)。

我不确定它会如何影响数据库的 SQL 性能,因为查询不是直接的。

PS:我需要使用通用外键,所以请建议任何 SQL 改进而不是重新设计模型。

使用 Django 1.4.3 和 Postgres。

最佳答案

我想引用 David Cramer 的话:Disqus 的开发者,Django 的提交者

Generic relations are fine. They are not slow, just more difficult to manage in your code base.

我看到很多人告诉别人不要使用泛型关系,因为它很慢,但从来没有说它有多慢。

关于Django 通用外键 - 考虑到 SQL 性能是好是坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14333460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com