我有一个SQL JOIN,它不能很好地转换为Django ORM语法,我想知道哪种替代解决方案更好:
我可以在线性时间加入两个查询集,所以我不认为2.会慢得多。但是哪种方法在概念上更好?
答案 0 :(得分:2)
主要考虑因素是性能,代码的可读性/清晰度以及可维护性。
如果性能不是您所说的问题,那么清晰度和可维护性是主要因素。纯Python / Django代码通常比在Python代码中将SQL查询作为字符串内联而更清晰地阅读并遵循其目的。根据我的经验,SQL查询作为字符串也很难维护,因为如果模型更改且查询不再有效,它们不会抛出语法错误。该问题将在运行时找到。
最终,可读性和可维护性问题主要依赖于您和任何其他维护者,因为它需要清晰可维护。在我看来,SQL字符串方法不太清晰,更脆弱。