2014-04-10 2 views
2

정규화 된 것으로 보이는 데이터베이스가 있습니다. sampleID를 기본 키로 포함하는 SAMPLES라는 테이블이 있습니다. 29 개의 테이블을 SAMPLES 관련된 각각 sampleID 외부 키가 있습니다. 이러한 모든 관계는 일대일 관계이며 참조 무결성을 강화합니다. Access 2010에서 참조 무결성과 관계를 만들 때 '인덱스가 너무 많습니다.'오류가 발생했습니다.

+ siteID (foreign key) 
+ sampleID (primary key) 
+ dateSample 
+ crew 
+ method 
+ comments 

29의 데이터 테이블의 각

예컨대 각 sampleID로부터 생성 된 데이터를 포함

내 SAMPLES 테이블은 언제 어떻게 과학적 샘플 (또는 샘플)을 포함하는 필드를 수집에 관한 정보를 기억

+ sampleID (foreign key) 
+ wetMass_g 
+ dryMass_g 
+ ashedMass_g 
+ organicMass_g 
+ pctOrganic 
+ replicateID 
+ dateAnalyzed 

29 개 서로 다른 데이터 테이블, 데이터의 각 유형에 대해 하나 있습니다 침전물 데이터, 영양소 데이터, 탄소 데이터, 엽록소 데이터, 등, 등 sampleID 함께의 다양한 유형을 모두 끌어 나를 수 있습니다 동일한 샘플링 이벤트 중에 수집 된 샘플.

새 테이블을 추가하려고하는데 DATA30을 호출 할 수 있습니다.이 테이블도 나머지 SAMPLES와 동일한 관계가 있습니다. 그러나 Access에서 관계를 만들면 SAMPLES 테이블에 인덱스가 너무 많다는 오류가 발생합니다. 나는 테이블 내에 32 개의 인덱스가 있다는 것을 알고 있지만 읽는 모든 것은 하나의 테이블 내에서 32 개의 인덱싱 된 필드임을 나타냅니다. 내 SAMPLES 테이블에는 하나의 기본 키와 하나의 외래 키가 있습니다. 또한 위에 설명 된 것처럼 29 개의 다른 테이블에 연결됩니다. 29 개의 관계가 SAMPLES 테이블의 인덱스로 계산됩니까? 21 개 이상의 테이블에 대해 참조 무결성을 시행하기 위해 sampleID 인덱스를 사용할 수 없다는 것이 이상하게 보입니다.

내 잘못 이해 했습니까? 데이터베이스를 다르게 구성해야합니까? 어떤 도움을 주시면 감사하겠습니다.

+0

모든 테이블의 필드가 같습니까? – Zaider

+0

아니요. 일부 입력란을 공유 할 수도 있지만 대부분은 각 입력란마다 고유합니다. – James

+0

Microsoft Access 2010에서 관계를 만들 때 [테이블에 너무 많은 인덱스가 있습니다] 오류가 발생할 수 있습니다.] (http://stackoverflow.com/questions/4542522/too-many-indexes-on-table-error-when-creating- 마이크로 소프트 액세스의 관계) –

답변

2

액세스는 참조 무결성을 사용하는 각 관계에 대해 숨겨진 색인을 만듭니다. 즉, 관련 테이블 각각에 대해 하나의 추가 색인이 존재하므로 Access 32- 색인/테이블 제한을 넘겨줍니다. this discussion을 참조하십시오.