2011-05-04 2 views
1

W3Schools 말한다 :CHECK 제약 조건 사용 - J2EE App Design 관점에서 얼마나 유용합니까?

점검 제한은 열에 배치 될 수있는 값의 범위를 제한하는 데 사용된다.

단일 열에 CHECK 제약 조건을 정의하면이 열에 대해 특정 값만 허용됩니다.

테이블에 CHECK 제약 조건을 정의하면 의 값을 다른 열의 값을 기준으로 제한 할 수 있습니다.

웹 응용 프로그램 관점에서 DB에이 제약 조건을 추가하면 확실히 데이터 손상을 피할 수 있으며 웹 응용 프로그램의 유효성 검사 (Validation) 계층에서 필드 수준 데이터를 확인하기위한 추가 유효성 검사를 피할 수 있습니다. 여기서 볼 수있는 유일한 문제는 데이터베이스에서 반환 된 오류 메시지가 최종 사용자에게 보여줄 수있는 의미가 없다는 것입니다.

이것에 대해 어떻게 말합니까? 또는 어떤 시나리오에서이 제약 조건을 사용했는지 묻습니다.

+0

"데이터베이스의 오류 메시지는 의미가 없습니다"라는 작업은 쉽습니다. 검사 제약 조건의 이름이 지정 되었 듯이 검사 제약 조건 오류와 응용 프로그램이 의미있는 메시지를 연관 짓는 테이블을 가지고 있다고 가정합니다 질문. –

답변

3

확인 제약 조건 (추가 제약 조건)은 추가 수준의 일관성을 보장하기 위해 사용되지만 응용 프로그램의 유효성 검사 논리를 바꾸는 데 사용하면 안됩니다. 이는 언급 한 것처럼 의미있는 오류 메시지를 표시해야합니다. (적어도) 프리젠 테이션 계층에서 데이터베이스에 도달하기 전에 완료되어야합니다. 그들은 유효성 검사 로직의 중복처럼 보일 수도하더라도

는 제약

  • 검증 논리가 버그가있을 수 있기 때문에 여전히 유용하거나 잊어 버린
  • 데이터베이스에 쓸 수있는 다른 방법이있을 수 있습니다 웹 응용 프로그램 (데이터베이스 스크립트 등)보다
  • 유효성 검사 논리가 실행되는 순간과 제약 조건을 확인하는 순간 사이에 다른 트랜잭션이 데이터베이스의 데이터를 변경했을 수 있습니다.
+1

dbms에 의해 강제되는 제약 조건이 보장됩니다. 응용 프로그램 수준에서 검사는 "추가 수준"입니다. –