스택 오버플로 및 다른 웹 사이트의 대용 키 대용 키에 대한 열띤 논쟁을 읽었으며 주어진 논점 중 일부에 대해 의아해했지만 각자 장단점을 알고 있습니다.대리 키의 경우 별도의 테이블이 필요합니까?
나는 대리 키로 가고 싶지만 다른 질문이 있습니다. 내 상황을 설명해 줄게. 고유 한 조합을 구성하는 5 개의 정수로 구성된 표가 있으며이 엔티티를 참조하는 여러 테이블이 있습니다. 현재 모든 테이블에는 전체 5 개의 필드가 포함되어 있으며 모든 JOIN 작업에는 5 개의 필드가 모두 조인 기준으로 언급되어 있습니다. 이제 대용 키를 추가했습니다. 하지만 '기본'테이블을 참조하는 대리 외래 키를 사용하여 모든 테이블에서 5 개의 필드를 모두 제거해야합니까?
5 개의 필드가 각각 다른 테이블의 선택 기준으로 자주 사용되므로이 작업을 수행하는 것이 확실하지 않습니다. 특정 자연 순서로 인덱스를 정의하므로 선택 작업이 빠르게 수행됩니다. 5 개의 필드를 모두 별도의 테이블로 마이 그 레이션하면 첫 번째 3 개를 선택하겠습니다. JOIN을 정의하고 선택해야하지만 인덱스는 정의되지 않습니다. JOIN은 생성 된 이후로 JOIN에서 성능 손실을 겪을 것입니다.
아니면 5 키를 포함하여 각 테이블에 대한보기를 정의해야합니까?
나는이 모든 것을 타이핑 한 후에 혼란스럽고 자연스러운 키를 다시 고집하고 싶다. 도움 말 하시겠습니까?
흠, 그렇습니다. 그런 다음 다른 테이블과 함께 색인을 만들어 JOIN을 삽입 할 수 있으므로 제 필터도 빠릅니다. 두 방법을 모두 시도해보고 성능을 비교해 보겠습니다. – thomaspaulb