내 응용 프로그램의 구성원에 대한 요율을 계산해야하는 SQLServer 데이터베이스가있는 ASP.NET 응용 프로그램을 작성하고 있습니다. 이러한 계산은 10 개 이상의 데이터베이스 테이블에 영향을줍니다. 데이터 액세스 계층에서비즈니스 로직을 어디에 써야합니까? 프런트 엔드 (비즈니스 계층) 또는 저장 프로 시저에서?
, 데이터베이스의 첫 번째 테이블에서 구성원에 대한 데이터를 가져 와서 비즈니스 계층에 반환 :
가 나는 두 가지 옵션이 있습니다 생각합니다. 일단 거기에 가져온 데이터를 계산하여 두 번째 테이블에 저장할 새 데이터를 생성합니다. 마지막으로 결과를 저장하려면 데이터 액세스 레이어로 다시 전화하십시오. 그런 다음 두 번째 테이블에서 정보를 가져 와서 세 번째 테이블에 저장할 결과를 계산하고 필요한 모든 테이블에 대해이 작업을 계속 수행하면서이 전체 프로세스를 반복합니다.
데이터베이스 트랜잭션 내에서 올바른 테이블의 구성원에 대한 새 요율 계산 및 저장을 캡슐화하려면 저장 프로 시저를 사용하십시오.
어떤 옵션이 가장 좋고, 왜 그런가? 첫 번째 옵션을 사용하면 비즈니스 로직 계층에서 하나의 ADO.NET 트랜잭션으로 모든 삽입 및 업데이트를 어떻게 수행해야합니까? 현재 데이터 액세스 레이어 외부에서 ADO.NET 트랜잭션을 사용하지 못하게되었습니다.