문제

나는 작은 SQL Server '08 데이터베이스를 구현하는 데 판단을 내려고 노력하고 있습니다.

플랫 파일 데이터베이스의 출력 텍스트 파일을 이전 COBOL 시스템에서 위에서 언급 한 SQL Server 데이터베이스로 변환하고 있습니다. 차량 및 부동산 대출 데이터베이스로 대출 기관 ID (7 자리 번호), 은행 계좌 번호 (15 자리) 및 "계정 접미사"(2 자리)의 조합으로 고유하게 식별 할 수 있습니다.

나는 데이터베이스 관리에 관해서는 매우 순진하다고 고백합니다 (솔직히 말해서, 현재 위치까지 실제로하지 않았습니다) 다른 여러 테이블로 색인되는 키 :

1) 위의 값의 3 열 키를 사용하여 각 대출을 식별하거나
2) 세 가지 값을 결합한 24 자 문자열 인 "키"열을 구현하여 데이터를 제거합니다.

비정규 화는 추악하고, 부여되었지만, 대출은 은행간에 전달되거나 대출 접미사를 변경할 수 없기 때문에 업데이트 이상이 발생할 것으로 예상 할 수 없습니다. 이러한 값의 변경은 다른 계정으로 보장됩니다.

복합 키는 더 우아하지만, 나는 그것이 나쁜 일이라는 것을 제안하는 몇 가지 논문을 읽었습니다.

그렇다면 어떤 옵션이 더 나은 선택 일 가능성이 높으며, 더 중요한 이유는 무엇입니까?

도움이 되었습니까?

해결책

자가 생성 된 대리 키를 사용한 다음 자연 키에 고유 한 색인을 넣습니다. 이런 식으로 자연스러운 키가 변경되면 (그리고 AA 은행이 다른 은행에 의해 인수되면) 한 곳에서만 변경하면됩니다. 대리 키를 사용하는 데있어 가장 중요한 것은 하나의 exiust와 고유 한 지수가 그렇게 할 경우 자연 키의 독창성을 보장하는 것입니다.

다른 팁

이것이 자주 업데이트되지 않는 참조 데이터 인 경우 멀티 파트 키를 사용하는 것이 좋을 것입니다.

이것이 교통량이 많은 트랜잭션 데이터 인 경우 대리 키 (INT ID, 클러스터 된 기본 키)를 추가하고 3 부 키를 대체 키로 만드십시오.

나는 옵션 2를 전혀 구현하는 것을 제안하지 않을 것입니다.

자동 증가 숫자 대리 키를 사용하는 것이 좋습니다. 다른 세 가지 "키"열의 매시업이어야하는 이유는 무엇입니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top