最近データベースにハマっているのですが、sqlで関数とかストアドプロシージャとかを使えば、表示以外の部分をほとんどデータベース層でできるのでは無いかと思いました。
デメリットがないならそのように開発したいです。
なにかありますか?
フロントエンドにjsでweb3層のアプリケーション層がデータベースかjsにあるようにすればRailsとか必要ないのでは?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
sqlで関数とかストアドプロシージャとかを使えば、表示以外の部分をほとんどデータベース層でできるのでは無いかと思いました。
この方針で開発した場合のデメリットとして、以下のようなものが考えられます。
- ストアドは書きづらい - データベースにもよりますが、ストアドプロシージャはSQL文を並べるような形となりますので、オブジェクト指向なプログラミング環境とはかけ離れたものとなります。
- 書ける人手がいない - 個人開発ならどうということはないのですが、それを超える規模で開発する場合、「ストアドでバリバリビジネスロジックを書ける」というような人材は稀なので、人を増やすにも教育がかなり必要になります。
- ストアドの管理が煩雑になる - ふつうのソースコードであればGitなどの管理ツールが充実していますが、ストアドはデータベースサーバに書き込む必要があるので、管理するために別途の仕組みを構築する必要性が出てきます。
- フレームワークがない - SQLベースの開発にあたっては確立したフレームワークがないので、ほぼすべてを自力で作り出す必要が出てきます。先行するノウハウも多くないでしょう。
- 結局、ある程度のサーバ層は必要 - セキュリティ上の問題のため、Webから直接SQL文を投げる形を取ることはできないので、Webサーバ層のロジックを完全になくすこともできません。
投稿2019/02/26 23:40
総合スコア145183
0
アプリケーション層にビジネスロジックをsqlで書くのが正解か?
RailsとかDjangoとか機能もりだくさんのフレームワークまじでいらんな
投稿2019/02/26 22:30
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
その通りです。
集合操作をsqlでアプリケーション層に書いてください。
投稿2019/03/04 11:41
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
思いついたデメリットを挙げますと、
- 大規模なコードを書くことを想定しておらず、複数人での開発やメンテナンスがやりづらい。
- 汎用プログラミング言語と比べると、機能が貧弱。
- 汎用プログラミング言語と比べると、開発ツールが貧弱で開発効率が悪い。(特にデバッグツール)
- スケールアウトがほぼできない。(完全に不可能ではないですが、実用レベルで考えるとかなり厳しい)
という感じです。
小規模システムなら、もしかしたらやれるかも・・・
と思いましたが、逆にメリットが一つも思いつきませんし、やっぱりやりませんね。
投稿2019/02/27 11:56
編集2019/02/27 11:57総合スコア6500
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/02/28 05:10
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。