2012-11-16 5 views
1

우리는 postgresql 데이터베이스로 마이그레이션 중이며 최대한 많은 제약 조건 검사를 사용하려고합니다. 문제는 웹 양식의 유효성을 검사 할 때 복제 코드가 많이 유지되어 유지 관리가 어려울 때입니다. 웹 양식 유효성 검사에도이 데이터베이스 검사를 사용할 수 있습니까? 응용 프로그램은 PHP로 작성되었으며 데이터베이스 계층은 pomm입니다. 목표는 모든 채워진 값을 잡고 데이터베이스에 보내고 PHP 응용 프로그램에서 추가 규칙을 정의하지 않고 실패한 제약 조건을 모두 얻는 것입니다. 가장 간단한 방법은 어떻게하면됩니까?폼 유효성 검사를 위해 postgres 제약 조건을 사용합니다.

답변

1

데이터 제약 조건은 데이터가 일관된 방식으로 저장되도록하기위한 것입니다. 양식 유효성 검증은 기능별 컨텍스트에 따라 다른 규칙을 가질 수 있습니다. Imho는 양식의 유효성을 검사하기 위해 데이터베이스 제약 조건에 의존하는 것이 좋지 않습니다 (저는이를 위해 Symfony validator 구성 요소를 사용합니다).

순전히 기술적 인 관점에서 보면, 유효성 검사 계층으로 데이터베이스를 사용하려는 경우 가장 어려운 부분은 데이터를 삽입/업데이트 할 수없는 이유를 추출하는 것입니다. 예외 메시지에서이 정보를 얻을 수 있다고해도 모든 필드가 괜찮을 때까지 하나씩 필드의 유효성을 검사합니다.

아직 가고 싶다면 Pomm\Exception을 붙잡고 SQL error 코드를 가져 오십시오.

희망이 있습니다.

+0

데이터베이스 제한은 여러 개의 앱을 데이터베이스에 쓰는 경우에 유용합니다. 앞서 언급 한 것처럼 양식 유효성 검사를 위해 웹 프레임 워크를 사용하는 것이 더 좋습니다. 데이터베이스 유효성 검사는 마지막 수단이어야합니다. – mys

+0

감사합니다. 가능한 한 많은 논리를 데이터베이스로 옮기는 것이 매우 영리 할 것이라고 생각했지만, 형식은 일반적으로 데이터 자체와는 다른 검증이 필요합니다. 데이터베이스에 많은 앱을 쓰고 있으므로 제약 조건이 실제로 필요합니다. –

+0

@PeterKrejci true! 나는 시간이 지남에 따라 변화하지 않는 유일한 로직 (데이터베이스, slugification, 인증, 데이터 순서 ...)을 사용한다. – greg

관련 문제