database - ORM 还是 "Vietnam of Computer Science"吗?

标签 database language-agnostic orm

<分区>

我读了this post昨晚,我注意到它是从 2006 年开始的。我可以在 ORM 和数据库方面采取任何一种方式,但我只是想知道 Jeff 所说的关于 ORM 的所有坏话是否仍然适用,考虑到该帖子是从 2006 年开始的。

最佳答案

这仍然是真的。

如果没有按照预期的方式准确处理数据库,数据库就会受到影响,甚至超过 OO 软件。并且您不应该在它前面插入一些抽象层。

我认为不可渗透的抽象层是试图 build 一座乐高城堡,所有部件都封闭在一个枕套中。 SQL很难正确执行。它与过程式编程并没有太多相同的模式,并且一种模式的最佳实践可能与另一种模式相反。您需要能够理解 SQL 语句中的每一项,并且非常清楚它打算做什么,以及它实际上做了什么。

很多人似乎认为,就像马蹄铁一样,接近就足够了 - 如果弹出正确答案,则意味着您就快到了。在 SQL 中,这根本不是真的。

由于这个原因,RoR 和 ActiveRecord 模式当之无愧地赢得了 dbms 资源消耗者的名声。优化的 ActiveRecord 设计往往是次优的 SQL 设计,因为它鼓励 SQL 语句分解。

关于database - ORM 还是 "Vietnam of Computer Science"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/404083/

相关文章:

database - 将数据库移动到另一个文件夹

database - 我如何用 pl/sql 中的记录项初始化数组?

algorithm - 绘制一个具有特定像素数的圆

php - Laravel 5 获取三级关系

hibernate - 具有许多列的Hibernate映射表

c# - 应用程序的可移植数据库

mongodb - 如何从 MongoDB 文档中完全删除字段?

language-agnostic - 一台 pretty-print "to rule them all"

language-agnostic - 现实世界中用于混淆的用途

SQLBoiler 获取 Join 的表名