2011-03-09 1 views
6

의 유효성을 검사해야합니까? 입력의 유효성을 검사해야합니까?DAO 레이어는 대개 특정 입력 (예 : user_id 등)이있는 DB에서 데이터에 액세스해야하므로 DAO의 입력

예. user_uid (> 0) 기본 키를 기반으로 사용자를 가져 오는 DAO 메서드가있는 경우 DAO 메서드는 필요한 DB 호출을 만들기 전에 항상이 제약 조건을 확인해야합니까? 또는이 메서드를 호출하는 상위 계층이 제약 조건을 처리하고 절대로 -ve id를 전달하지 않는다고 가정해야합니까? DAO 메서드는이 제약 조건을 문서에 게시하여 상위 계층을 작성하는 프로그래머가이 제약 조건을 인식 할 수 있도록합니다.

일반적으로 어떤 접근 방식을 사용하며 그 이유는 무엇입니까?

감사합니다.

답변

5

대답은 비즈니스 계층 (아마도 데이터 계층 이상)이이 값의 유효성을 검사하는지, 다른 계층 (예 : 워크 플로 계층)에서 데이터 계층을 호출 할 수 있는지에 따라 달라집니다.

일반적으로 비즈니스 계층에서 유효성 검사를 묶고 계층 통신을 제한하여 데이터 계층을 비즈니스 계층을 통해서만 호출 할 수 있도록하는 것이 좋습니다.

우리는 또한 미래에 다른 서비스에 유효하지 않은 데이터를 입력하려고 시도하기로 결정하는 경우에 저장 프로 시저 확인 키/null로 유효성 검사를 추가합니다.

6

DAO를 층 에게 입력의 유효성을 검사하지 않아야합니다. 데이터의 무결성 및 일관성은 지속성 계층 (예 : 외래 키)에서 검사되고 비즈니스 관련 유효성은 비즈니스 계층에서 검사됩니다. DAO 계층의 유일한 책임은 데이터를 저장하거나 검색 할 지속 계층과 관련이 있습니다.