23

私は 6 年の経験を持つ .net の男です。最近、ROR プロジェクトに取り組み始めたところ、ストアド プロシージャ/SQL 関数がまったく使用されていないことに気付きました。それについて問い合わせたところ、それが一般的な慣行であり、一般的にチームの誰もSQLクエリをまったく作成していないことを知りました。すべてはActiveRecordを使用して行われます。

これについて考えられる理由についてグーグルで検索しましたが、多くの情報が見つかりませんでした。だから私は知りたいだけの好奇心です

  1. ストアドプロシージャ/SQL関数の使用が好まれないのは一般的な慣行ですか?
  2. ストアド プロシージャを使用することの長所と短所は何ですか?
4

4 に答える 4

35

ストアドプロシージャ/SQL関数の使用が好ましくないのは一般的な方法ですか?

これは非常に一般的であり、ほとんどのRailsアプリはActiveRecord以外のものを使用する必要はありません。

Railsの背後にある主要な哲学の1つは、6か月後に「高速」な製品を市場に出すことよりも、実際に機能する製品を今日市場に出すことが重要であるということです。あなたの製品は、パフォーマンスが懸念されるほど人気が​​あることはほとんどありません。それ問題になった場合は、後でパフォーマンスの側面を強化することができますが、当面の懸念は、アプリを迅速に構築し、市場に応じてアプリの一部またはすべてを迅速にリファクタリングできるようにすることです。

ストアドプロシージャを使用することの長所と短所は何ですか?

それらは書くのが遅く、変更するのがより難しいので、開発コストを前倒しします。ただし、実行は高速になる可能性があります。

于 2013-03-20T07:20:30.753 に答える
5

Railsからストアドプロシージャを呼び出すことはできますが、標準で生成されたSQLが機能しないため、ActiveRecordの利点のほとんどが失われます。ネイティブデータベース接続を使用して呼び出すことはできますが、それはリークの多い抽象化になります。DataMapperを検討することをお勧めします。

>> Railsでのストアドプロシージャの使用から取得

要約すると、ストアドプロシージャを使用するのは「RAILSWAY」ではありません。

于 2013-03-20T07:18:36.153 に答える