2013-04-23 2 views
1

방금 ​​만든 테이블에 올바른 색인을 설정하려고합니다.이 테이블에는 4 개의 "다형성 연결"과 PK ID이 들어 있습니다. 4 개 협회는 데이터베이스에 추가하는 테이블의 수를 4 배로 늘리지 않아도되고이 토론에서 수정해서는 안됩니다. 내 질문은 내가 최적의 성능 (속도, 공간별로) 얻을 수 있도록 인덱스를 어떻게 설정해야합니까? 4 개의 키 중 어느 것도 PK 후보가 아닙니다. 보다 구체적으로 4 개 모두는 한 번에 하나씩 만 존재합니다. PK를 추가하지 않는다고해도, 사용하지 않더라도 PK를 추가하는 것이 낫다는 것을 읽었 기 때문에 PK "ID"를 추가했습니다. 그러나 나는이 주장에 점점 더 의문을 품고있다.(시뮬레이션 된) 다형성 연관이있는 테이블의 암호

테이블에 대한 추가 정보 : 4 개의 FK 중 1 개만 사용해야하는 논리는 Access 양식에 의해 시행됩니다. non-dev는 테이블에 직접 액세스 할 수 없습니다. 나는이 데이터베이스가 사용되는 한 매월 2 백개 이상의 응모가있을 것으로 기대한다. 한 달에 평균 10 년과 평균 500 개의 항목을 사용한다고 가정하면 10 년 내에 60,000 개 이상의 항목을 가져야합니다. 기본적으로이 테이블은 엄청나게 큰 테이블이 아닙니다.

db 및 양식은 Access 2003에서 실행됩니다 (예 ... 알고 있습니다 ...).

저에게 도움이되기를 바랍니다. 아래 이미지에서 테이블 구조를 볼 수 있습니다. 4 개의 FK는 NoDemandeAmendementTransit, NoDemandeAmendementRubrique, NoAmendementTransit, NoAmendementRubrique입니다.

감사합니다.

enter image description here

답변

1

보다 실용적인 디자인을 참조하고 네 개의 하위 유형 모두를위한 하나의 슈퍼 테이블을 만드는 것입니다. 그런 다음 4 개의 개별 FK 대신 1 개의 외래 키로 4 퍼 유형 테이블을 참조하십시오. 데이터베이스 설계에 대한 가장 좋은 책에서 찾을 수있는 디자인 패턴이며 여러 "선택적"외부 키를 갖는 것보다 간단하고 효율적입니다. 또한보다 유용한 기본 키를 제공합니다.

+0

테이블에 4 개의 테이블 중 하나만 참조하는 것과 동일한 문제점이 있습니까? – ApplePie

+0

아니요. 수퍼 유형을 참조하는 부속 유형 테이블이 G로 다른 f}이 아 U니다. – sqlvogel

+0

Meh. 나는 그것이 더 효율적일 것이라는 점을 이해하고 동의한다. 나는 이것이 내 질문을 약간의 논쟁으로 만든다고 생각한다. – ApplePie