저는 small-ish SQL Server '08 데이터베이스를 구현할 때 전화를 걸려고합니다.데이터 또는 여러 열 키를 비정규 화 하시겠습니까?
플랫 파일 데이터베이스의 출력 텍스트 파일을 이전 COBOL 시스템에서 앞서 언급 한 SQL Server 데이터베이스로 변환합니다. 대출자 ID (7 자리 숫자), 은행 계좌 번호 (15 자리) 및 "계정 접미사"(2 자리)의 조합으로 고유하게 식별 할 수있는 차량 및 부동산 대출 데이터베이스입니다.
고백 나는 데이터베이스 관리에 관해서 솔직히 말하면 고백한다. (솔직히 말해서, 나는 현재까지 나의 위치까지 그것을 해냈다.) 나는 두 가지 접근법 중 어느 것이 최선인지 결정하려고 노력하고있다.
1) 위 값의 3 열 키 또는
을 사용하여 각 대출을 식별합니다. 2) "키"열을 구현하여 데이터를 비정규 화합니다. 세 값을 결합한 24 자 문자열
비정규 화는 어렵지만 허용되지만, 대출이 은행 간을 왕래하거나 대출 접미사를 변경할 수 없기 때문에 업데이트 이상이 발생할 것으로 예상 할 수 없습니다. 이러한 값의 변경은 다른 계정으로 보장됩니다.
복합 키는 좀 더 우아하지만, 나는 그것이 나쁜 것임을 암시하는 몇 가지 논문을 읽었습니다.
그래서 어떤 옵션이 더 나은 선택 일 수 있으며 더 중요한 이유는 무엇입니까?
키를 자동으로 증가시키는 대신 열을 GUID로 만들 수도 있습니다. 이렇게하면 독창성을 유지하면서 새로운 레코드에 대해 자동 생성되는 키 필드에 대해 걱정할 필요가 없습니다. –
GUID를 사용하려면 NEWID()가 아닌 NEWSEQUENTIALID()로 채 웁니다. –