2014-02-21 3 views
0

내 질문은 데이터베이스 관점에서 공식화되지는 않지만 비즈니스의 장점은 논리적 인 관점입니다.비즈니스 로직 관점에서 비즈니스 열에 고유 한 인덱스를 사용하는 것이 맞습니까?

예제 테이블 CreditCard 및 열 CreditCardNumber를 사용합니다. 두 개의 동일한 CreditCardNumber를 가질 수 없으므로 CreditCardNumber에 고유 색인을 지정할 수 있습니다. 그러나, 이것이 비즈니스 규칙이 아닌가? 그렇다면 비슷한 CreditCardNumber를 데이터베이스에 허용하고 비즈니스 로직 계층의 고유성을 확인해야합니까?

맞습니까? 이 경우 고유 인덱스를 사용할 때 어떤 이점이 있습니까? 또는 두 경우 모두 정확하고 누구를 선택할 수 있습니까?

감사합니다.

답변

0

고유 한 신용 카드 번호 (또는 다른 유사한 규칙)를 적용하는 것은 응용 프로그램 계층과 데이터베이스 계층에서 모두 수행해야합니다.

응용 프로그램 계층에서 고유성을 테스트하여 사용자에게 피드백을 제공 할 수 있습니다. 예를 들어, 점원이 새 신용 카드 번호를 입력하고 있습니다. 응용 프로그램에서 숫자가 이미 데이터베이스에 있는지 확인하고 오류가 있으면 오류를 수정할 수 있도록 사용자에게 알리십시오.

고유해야하는 열에 대해 중복 항목이 작성되지 않도록 데이터베이스 수준에서 고유 한 번호를 적용하려고합니다.