2016-08-30 9 views
0

製造プロセスを扱うショップフロアアプリケーションを作成しました。しかし、数ヶ月かけて、それが増加し、増加したサイズで、今私は本当にこれは、ロジックの簡易版である大量の.NETコードを使用したSQLトランザクション

エラー処理の良い量を追加する必要がありますフロー:

  1. GetWorkCenterStoreLocation - 選択のための店舗の場所選択した製品
  2. GetProductRouteの部品コスト(BOM) - - サプライヤー
  3. GetUsedBoMsFromRoutingはどのくらい生産ラインの下の私たちは、製品を仕上げるか、単に次の作業の中心部に渡すように天気をを知るために、後で使用されます取得します。
  4. AdjustStockIn - (それは最後のワークセンターだ場合)株式に製品を調整し
  5. AdjustStockOut - 次のワークセンター
に製品を移動 - 指定されたワークセンター
  • UpdateWorkCentreRoutingで使用した原料を調整します

    私の質問は、SqlTransactionを.NETに書くか、または各ステージの関数を使用してトランザクションでラップする大規模なストアドプロシージャを記述することですか?あるいは全く違ったアプローチをしますか?ありがとう。

  • +0

    [Webアプリケーションに格納されている手順ですべてのビジネスロジックを保持する長所と短所]の可能な重複(http://programmers.stackexchange.com/q/158534/ 30872) – GSerg

    +0

    [ストアドプロシージャにビジネスロジックを入れるかどうか]の可能な複製(http://programmers.stackexchange.com/q/113379/30872) – GSerg

    +0

    SPを使用するときは、データベースの変更要求があった場合には、それは欠点です。 DB内のビジネスロジックも疑問のある設計です。 *大規模な手順を使用することはお勧めできません。例えば、実際に何が起きているのか覚えていないかもしれません。 .Net 'SqlTransaction'と同じくらい良いSP方法を除いて。 SPはより速いかもしれません。 – Vladimir

    答えて

    0

    すべてのreuired関数を実行し、.netコードから呼び出すストアドプロシージャを書くことは簡単に操作できます。 SPを使用する

    利点:

    1. Better performance. 
    2. Easy to code (as sql part stays in sql) 
    3. Easy to debug 
    4. Easy to make changes. 
    
    +0

    そして、ドットネットクライアントの新しいバージョンを導入する必要なく、変更やバグ修正が可能です。 – GuidoG

    +0

    なぜ誰かがこれをdownvoteだろうか?理由を知ることができますか? –

    +3

    あなたのポイント2,3,4は少なくとも議論の余地があります – Steve

    関連する問題