我正在寫一個SQLServer數據庫的ASP.NET應用程序,其中我必須爲我的應用程序的成員計算費率。這些計算會影響超過10個數據庫表。我應該在哪裏編寫業務邏輯?在前端(業務層)還是在存儲過程中?
我相信我有兩個選擇:
在數據訪問層,取數據從數據庫中的第一個表的成員,並返回到業務層。一旦完成,對獲取的數據執行一些計算以生成要保存在第二個表中的新數據。最後,回到數據訪問層以保存結果。之後,重複這一整個過程,從第二個表中提取信息以計算要保存在第三個表中的結果,並繼續爲所有必要的表執行此操作。
使用存儲過程來封裝計算併爲數據庫事務中的正確表中的成員保存新費率。
你認爲哪種選擇最好,爲什麼?如果我使用第一個選項,應該如何在業務邏輯層的一個ADO.NET事務中執行所有插入和更新?我目前禁止在數據訪問層之外使用ADO.NET事務。