クライアントサーバーアプリケーションを開発するときに2層アーキテクチャを使用すべきではない理由

データベースに関連する学問分野で、大学での彼の新しい研究室の仕事について教えてくれた友人に感謝します。 そうでなければ、記事は単に光を見ないでしょう。



このラボの本質は、n番目の検証、ストアドプロシージャ、およびトリガーをMS SQLで記述することでした。 すべてのトリガー、検証、およびストアドプロシージャは非常に単純ですが、これは最初の実験室のものであり、さらに悪化します。複数階のSQLクエリと非常に大きなストアドプロシージャがあります。



2018年にそのようなことを勉強するのに時間を費やすことはあまり実用的ではないようです。つまり、誰も裸のデータベースを使用せず、すぐにクライアントに出力します。 すべてのアプリケーションにはビジネスロジックがあり、一定のスケーリングと変更の影響を受けます。 また、DBMSのみをサーバー側として使用して解決できない多くの問題が発生する可能性があるため、データベース上のすべてを結び付けることは正しくありません。



そのような問題の例は次のとおりです。





電子メールを送信するために必要なものの典型的な例を考えてみましょう



MS SQLを介してメッセージを送信した場合の外観



DECLARE @tableHTML  NVARCHAR(MAX) ;  

SET @tableHTML =  
    N'<H1>Work Order Report</H1>' +  
    N'<table border="1">' +  
    N'<tr><th>Work Order ID</th><th>Product ID</th>' +  
    N'<th>Name</th><th>Order Qty</th><th>Due Date</th>' +  
    N'<th>Expected Revenue</th></tr>' +  
    CAST ( ( SELECT td = wo.WorkOrderID,       '',  
                    td = p.ProductID, '',  
                    td = p.Name, '',  
                    td = wo.OrderQty, '',  
                    td = wo.DueDate, '',  
                    td = (p.ListPrice - p.StandardCost) * wo.OrderQty  
              FROM AdventureWorks.Production.WorkOrder as wo  
              JOIN AdventureWorks.Production.Product AS p  
              ON wo.ProductID = p.ProductID  
              WHERE DueDate > '2004-04-30'  
                AND DATEDIFF(dd, '2004-04-30', DueDate) < 2   
              ORDER BY DueDate ASC,  
                       (p.ListPrice - p.StandardCost) * wo.OrderQty DESC  
              FOR XML PATH('tr'), TYPE   
    ) AS NVARCHAR(MAX) ) +  
    N'</table>' ;  

EXEC msdb.dbo.sp_send_dbmail @recipients='yourfriend@Adventure-Works.com',  
    @subject = 'Work Order List',  
    @body = @tableHTML,  
    @body_format = 'HTML' ;  


      
      





, ?



. , , . , , , . , html . .



, . , .





, . . websockets, , , websockets , .



:

, .


, . - , .



SQL. -- , , .





, .



, , , .



, , . SQL . . , .



, , .



UPD 13.02.2018

speshuric



All Articles