"리포지토리 패턴"데이터베이스 설계에 대한 이론적 기초는 무엇입니까? 나는 아무도 추측하지 않습니다. 그것은 "거짓 계층"은 당신이 격리되어야하는 것입니다. 내가 알 수 있듯이 관계형 디자인 원칙에 대한 광범위한 프로그래밍 무지와 응용 프로그램의 OO 디자인의 가정 중심에 대한 팬더가 있습니다. 그러나 이론적 근거는 물론 합리적으로 존재한다는 것을 정당화하지는 않습니다.
데이터베이스 설계를 향한 진정한 길은 30 년 동안 변하지 않았습니다. 데이터를 분석하십시오. 키와 제약 조건 및 다 대일 관계를 찾으십시오. Boyce-Codd 일반 양식에 따라 테이블을 디자인하십시오. 데이터 액세스를 용이하게하기 위해 뷰와 저장 프로 시저를 사용하십시오.
SQL DBMS는 프로그래머가 제공 할 수있는 것보다 더 나은 격리 계층을 제공합니다. 데이터베이스가 변경됨에 따라 액세스하는 데 사용되는 SQL이 변경되어야 할 수도 있습니다. 그러나 중개 계층이 있는지 여부에 관계없이 사실 입니다. 애플리케이션이 뷰 및 스토어드 프로 시저를 사용하여 DBMS에 액세스하는 한 일반 SQL 엔지니어링 도구는 기본 데이터베이스에 대한 변경이 해당 뷰 및 스토어드 프로 시저를 무효화하는시기를 표시합니다.
당연히 도전이 있습니다. 중개 계층은 코드를 작성하는 프로그래머에게 고립의 환상과 편안함을 제공합니다. 데이터베이스 설계 및 SQL을 학습하려면 새로운 것을 학습해야합니다. 대부분의 사람들은 생각보다 죽고 많은 사람들이 성공합니다.
팀의 누군가는 200 개의 클래스를 지원하기 위해 SQL을 작성하는 것이 많은 작업이라는 데 의심의 여지가 없습니다. 의심의 여지가 없습니다. 그러나 적어도 그것은 유용한 작업입니다. OO 설계를 모방하여 데이터베이스를 설계하는 경우 많은 작업을 수행 할 수 있으며 그 중 상당 부분은 쓸모가 없으며 DBMS가 제공하는 대부분을 물리 칠 수 있습니다.
예를 들어, 데이터베이스에 작업 단위 (테이블 또는 테이블)를 반영하는 것을 고려합니다. 작업 단위 : 내장에있는 DBMS의 서비스 begin transaction
... 업데이트 데이터베이스 ... commit transaction
. SQL에서 데이터베이스 테이블에 클래스를 매핑하는 것 외에는 모델링 할 것이 없습니다.
귀하의 질문은 4 년 전에 게시되었습니다. 최근에 어떤 방식으로 "업데이트"되었기 때문에 여전히 누군가에게 관심이 있음을 나타냅니다. 내 대답이 독자가 무의미한 해결 방법을 채택하는 대신 문제에 기본 관계 이론을 적용하도록 장려하기를 바랍니다.