直接在rails中编写SQL查询是一个好习惯吗?

pho*_*ard 4 ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我正在制作一个具有非常大的数据和多个连接的应用程序。立即在 Rails 中使用完整的 sql 字符串是一个坏习惯吗?在 Rails 中编写完整的 sql 查询有哪些缺点?

Mar*_*ser 5

如果您在不了解替代方案的情况下这样做,这只是不好的做法。

也就是说,很少有理由这样做。框架为你封装了它,好处是你需要编写更少的代码。另一个好处是数据库独立性。您编写的查询越直接,您编写的内容就越有可能在切换数据库引擎时崩溃。

很容易测试。如果您正确使用框架(即优化 ActiveRecord,正如您将在许多文章中讨论的那样)并且仍然感觉查询太慢......您始终可以对直接查询进行基准测试。

但不知道如何使用 ActiveRecord 关联执行某些操作并不是诉诸直接 SQL 的充分理由。

http://guides.rubyonrails.org/association_basics.html

  • 数据库独立性很大程度上是一个神话,任何 ORM 都不能让您免受数据库之间差异的影响。这就是为什么有这么多“它在使用 SQLite 进行开发时工作正常,但在使用 PostgreSQL 的 Heroku 上却崩溃了”的问题,以及为什么我们总是告诉人们在相同的堆栈上进行开发和部署。 (5认同)