首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ruby on Rails中的存储过程

Ruby on Rails中的存储过程
EN

Stack Overflow用户
提问于 2013-03-20 15:09:35
回答 4查看 16.7K关注 0票数 22

我是一个有6年经验的.net用户。最近,我开始从事ROR项目,并意识到存储过程/sql函数根本没有被使用。在询问时,我了解到这是一种常见的做法,通常团队中根本没有人编写sql查询,所有的事情都是使用ActiveRecord完成的。

我在谷歌上搜索了所有可能的原因,但没有找到太多信息。所以我只是好奇地想知道

  1. 不首选使用存储过程/sql函数的做法是否普遍?
  2. 使用存储过程的优缺点是什么?
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-03-20 15:20:31

不喜欢使用存储过程/sql函数是一种常见的做法吗?

这是很常见的,大多数Rails应用程序只需要使用ActiveRecord。

Rails背后的一个主要理念是,今天将一个可用的产品推向市场比在6个月后将一个“快速”的产品推向市场更重要。几乎可以肯定的是,您的产品永远不会受到足够的欢迎,以至于性能成为一个问题。如果这确实成为一个问题,您可以稍后支持性能方面的事情,但当前的关注点是能够快速构建应用程序,并能够根据市场快速重构部分或全部应用程序。

使用存储过程的优缺点是什么?

它们编写起来更慢,更难更改,因此会提前承担您的开发成本。但是,它们的执行速度可能会更快。

票数 33
EN

Stack Overflow用户

发布于 2016-07-08 16:11:53

使用存储过程可能不是"rails方式“,但使用外键约束也不是”rails方式“,我们都知道这是一个多么糟糕的设计决策。

因此,我对“rails way”持保留态度。如果存储过程对您有效,请使用它们。

这就是我要做的。由于了解到ORM通常不能真正“理解”存储过程,因此我避免直接使用它,而是创建一个实例化视图来封装存储过程,然后将其表示为一个常规表。正确设置后,这将为ORM提供一些它可以更好地理解的东西,同时仍然利用将数据库逻辑保留在它应该存在的层中的优势,数据库是一个在数据处理方面总是优于web框架的引擎。

票数 8
EN

Stack Overflow用户

发布于 2013-03-20 15:18:36

您可以从Rails调用存储过程,但是您将失去ActiveRecord的大部分好处,因为标准生成的SQL将不起作用。您可以使用本机数据库连接并调用它,但这将是一个泄漏的抽象。您可能会考虑使用DataMapper。

摘自>> Using Stored Procedures in Rails

总之,这不是使用存储过程的"RAILS方式“。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15517388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档