2011-04-25 4 views
1

내가 틀렸다면, 제발 올바른 : (각함으로써 우리는 다오/Vo에 패턴이나 TDG 패턴을 사용하는 경우데이터 매퍼 디자인 패턴 및 게이트웨이 - 신참 질문

우리가 좋은 코드 구성을해야합니다 또는 적어도 많은 테이블) 관련 클래스.

이 접근법의 문제점은 데이터가 주어진 테이블에서 닫히지 않는다는 것입니다. 도메인 특정 데이터 (예 : findDogBreed(); 또는 findBookBestSellerAuthor();)이 있으며 위의 패턴은이 문제를 제대로 처리하지 못하는 것 같습니다.

해결책이 Mappers를 사용하게되면. Mappers는 한 테이블과 관련된 메소드와 속성 집합을 포함하지만 해당 테이블에만 닫히지 않으며 특정 SQL 스키마와 관련되지 않습니다.

우리가 모든 것을 추상화하기 시작하면 SQL 구문에 액세스 할 수 없다는 것이 문제입니다. 데이터베이스 관리자가 작업해야하는 경우 어떻게해야합니까? 더 복잡한 쿼리의 경우 매퍼를 사용하면 정말 지저분한 추상화가 될 수 있습니다.

이 정보가 맞습니까? 그렇다면 여기 중간 용어를 찾기 위해 어떤 경로가 있는지 궁금합니다.

+0

최소한 내가 사실을 알기 때문에 나는 대답을 얻지 못한다는 사실은 : a) 질문이 의미가 없다. b) 중기와 같은 생각은 없다. :) plz ... : D – MEM

+0

현재 아키텍처의 예를 제공해주십시오. 특히 findDogBreed() 메서드로 발생하는 문제와 관련하여; 또는 findBookBestSellerAuthor(); – GordyD

답변

1

여러 수준 추상화 기능을 포함하여 기능을 추상화 할 때 수동으로 SQL을 작성하는 옵션을 잃지 않아도됩니다.

예. ORCL for PHP에서 Hibernate에서 영감을 얻은 Doctrine을 살펴 보자. SQL로 변환하고 엔티티를 자동으로 매핑하는 DQL (Doctrine Query Language)에서 쿼리를 작성할 수 있지만 native SQL (대개 성능 최적화를 위해)을 쓸 수도 있지만 직접 결과 매핑을 정의해야합니다.