gpt4 book ai didi

python - Django 的 ORM 有什么限制?

转载 作者:IT老高 更新时间:2023-10-28 20:47:39 24 4
gpt4 key购买 nike

我听说开发人员不想使用 ORM,但不知道为什么。 ORM的缺点是什么?

最佳答案

首先,我完全提倡在大多数简单情况下使用 ORM。在使用非常简单的(关系)数据模型时,它提供了很多便利。

但是,既然你问的是缺点……

从概念的角度来看,ORM 永远不可能是底层数据模型的有效表示。它充其量只是您数据的近似值 - 大多数情况下,这已经足够了。

问题是 ORM 将映射在“一个类 -> 一个表”的基础上,这并不总是有效。

如果您有一个非常复杂的数据模型(理想情况下,该模型无法由单个 DB 表正确表示),那么您可能会发现您花费大量时间与 ORM 作斗争,而不是让它为您工作.

在实践层面上,您会发现总有一种解决方法;一些开发人员在支持/反对 ORM 时会有党派倾向,但我更喜欢混合方法。 Django 非常适合这一点,因为您可以根据需要轻松放入原始 SQL。比如:

Model.objects.raw("SELECT ...")

当您对数据执行简单的 CRUD 操作时,ORM 会从 99.99% 的其他情况中承担大量工作。

根据我的经验,完全避免使用 ORM 的两个最佳理由是:

  • 当您拥有通过多个联接和聚合频繁检索的复杂数据时。通常,手动编写 SQL 会更清晰。
  • 性能。 ORM 非常擅长构建优化的查询,但没有什么能比得上编写一个漂亮、高效的 SQL。

但是,总而言之,在与 Django 广泛合作之后,我一方面可以数出 ORM 不允许我做我想做的事的次数。

关于python - Django 的 ORM 有什么限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9112571/

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