- - PR -
Database Expert 会議室での質問について
投票結果総投票数:35 | |||
---|---|---|---|
SQLで可能なことは極力SQLに任せて実現する。 | 26票 | 74.29% | |
SQLは単純化し、極力ロジックで実現する。 | 9票 | 25.71% | |
|
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-11-27 16:01
るぱんです。
個人的な基準です。たたき台にしてみて下さい。
| ||||
|
投稿日時: 2007-11-27 16:32
いわゆる「SQLパズル」(http://oraclesqlpuzzle.hp.infoseek.co.jp/にあるような問題)の場合は、SQLで書いたほうが速い場合が多いので、SQLで書きます。
とはいっても、数十行や百行を超えるレベルのものは、プログラムから直接SQLを発行することはなく、Viewかストアードサブプログラムを使用しますので、xUnitとの親和性もそれほど悪いとは思っていません。開発対象のプロダクトの使用言語ではない言語も使えますし。 質問の「どちらを選んでもAPのパフォーマンスに大差がない」という場面に出会うことはめったにないのですが、その場合はどちらで実装したほうがReadability, Testabilityに優れているかで、その都度判断すると思います。 なので、どちらも選択しませんでした。 | ||||
|
投稿日時: 2007-11-27 17:52
(1)に投票しました。
基本はSQLのみで実装します。 無駄なデータをアプリ側で処理するのも面倒ですし、 解析する際にプログラムとSQLのどちらも行う必要があるから。 | ||||
|
投稿日時: 2007-12-06 00:39
SQLはあくまでDBアクセスが役割であってプログラムの重要な部分を担ってはいけないですね。あくまでも補助です。ビジネスロジックをSQLに入れてしまうと、変更に弱いプログラムになってしまいコストがかかります。
| ||||
|
投稿日時: 2007-12-06 18:06
私は極力ビジネスロジックをも含めて、SQL(ストアド)で処理を行う派です。
ネットワーク上でデータをやり取りするよりも、サーバーで一括で処理を行い、 正常・異常の終了コードだけ返す方がスマートですね。 大抵はクライアントで処理を行うよりもレスが良いですし、クライアント端末の 方がサーバー端末より高スペックって事も無いでしょうしね。 |