"データベースとビジネス・ロジックの対比"の古典的な質問をもう一度尋ねるのは嫌ですが、古いタイプの開発者チームに、コード内のビジネス・ロジックが優れていると納得させるいくつかの具体的な理由が必要です。他の何よりも保守的です。私はそれが単一のアクセスポイントであると信じていたので、DB内に多くのビジネスロジックを持っていました。私が唯一変わったのであれば、メンテナンスは簡単です。私の経験では、プロジェクトが大きく複雑になったときに問題が発生しました。 DB用のソース管理ストアドプロックスは、新しいIDE用のものほど進んでおらず、エディタもありません。ビジネスロジックをコードでは、DBよりもはるかに優れていますが、これは私の最近の経験で見つけたものです。データベース・レイヤーのビジネス・ロジック
https://stackoverflow.com/search?q=business+logic+in+database
私はそこにどのような状況には絶対的ではありませんが、与えられたasp.netソリューションを知っている、:
だから、ちょうどstackoverflowの周りを探して、私はその尊敬のメンバーとは全く反対の哲学を発見しました特に高トラフィックのサイトではなく、SQLサーバーまたはOracleを使用します。なぜロジックをDBに入れるのでしょうか?
お返事ありがとうございます - 私はビジネスロジックを意味していますが、「この従業員はこの部署の費用を追加することができますか?」など、非常に特定したビジネスロジックを参考にしています...参照整合性とトリガーは、孤立したデータと外部キーを保持しますが、私が言及したようなチェックをするのには役立ちません。それはどこにあるべきですか? –
@Cadeあなたがあまりにも多く隠れるか、あまりにも多くのビューやSprocsが容易にほとんど管理不能になる可能性がある場合を除いて、私はあなたに完全に同意します。私はリファクタリングのケースを見てきました。ビューの上にビューがあり、ストアドプロシージャがすべてのことを管理するために使用されています。良いデザインは、3層とn層のアーキテクチャが発明された理由ですが、これを多く防ぐことができます。これらの問題の多くを避けようとする。 –
@ M.R。従業員と部署に関するあなたのケースは、データベースの外にある場合もあります。一方、複数のアプリケーションが挿入を実行している可能性がある場合(たとえば、WebフロントエンドとWindowsサービスを含むSSISパッケージからの注文)、データベースに適用する可能性があります。すべてのユーザーに何らかの種類のアプリケーションサーバーまたはWebサービスを強制します。 –