2010-03-05 4 views
0

다른 테이블의 값 중 하나 인 값을 갖는 인덱스를 만들 수 있습니까?데이터베이스 인덱스가 테이블을 확장 할 수 있습니까? Postgres에 있습니다.

예 :

model Pet 
    primary_key id 
    foreign_key Species 
end 
model Species 
    primary_key id 
    int genus 
end 

이 genuses의 적은 유형 종의 종류가 많이있다 가정하자. Genus에 의해 Pets 테이블의 색인을 만들고 싶습니다. 할 수 있습니까?

그렇다면 레일스 마이그레이션에서 올바른 방향으로 나를 가리켜 주시면 감사하겠습니다.

+0

내가 포스트 그레스 모르지만 내가 그이 가능 믿지 않는다 . 당신은 분명히 종 FK를 사용하여 인덱스를 만들 수 있지만 실제로 속 컬럼은 속 테이블에 대한 FK이어야합니다. –

답변

2

아니오. 관계형 데이터베이스 기술에서 "인덱스"는 테이블의 인덱스를 의미합니다. 대신이 같은 두 가지를 결합 할 수 있습니다 :

수준의 논리적을 열거
 
ANIMAL_CLASS 
+ name 
+ id 
+ LEVEL 
+ parent_id 

{종 GENUS, ....}

+1

정확히는 아닙니다. 오라클은 비트 맵 조인 인덱스를 지원합니다.이 인덱스는 하위 테이블의 상위 테이블 속성을 인덱싱합니다. 별 변환 쿼리에서 별/눈송이 스키마에 대한 IO를 제거하도록 설계되었습니다. 따라서 오라클은 Species.Genus를 Pet 테이블에 인덱싱 할 수 있습니다. 각 Pet는 하나의 Genus 만 가질 수 있습니다. –

관련 문제