상속은 객체 지향 데이터베이스의 개념입니다. 데이터베이스 디자인의 흥미로운 새로운 가능성을 열어줍니다.
두 개의 테이블을 만들자 : 테이블도시
및 테이블캐피탈
. 당연히 수도는 도시이기도하므로 모든 도시를 나열 할 때 암시 적으로 수도를 보여줄 수있는 방법을 원합니다. 당신이 정말로 영리하다면 당신은 다음과 같은 계획을 발명 할 수 있습니다 :
테이블 캐피탈 생성 ( 이름 텍스트, 인구, 진짜, 고도 int, - (ft) 상태 문자 (2) ); 테이블 작성 Non_capitals ( 이름 텍스트, 인구, 진짜, 고도 int- (ft) ); 도시보기를 만듭니다 자본에서 이름, 인구, 고도를 선택하십시오 노동 조합 이름, 인구, 비 카피탈에서의 고도를 선택하십시오;
이것은 쿼리가 진행되는 한 정상적으로 작동하지만 여러 행을 업데이트해야 할 때는 추악 해집니다..
더 나은 솔루션은 다음과 같습니다.
테이블 도시 생성 ( 이름 텍스트, 인구, 진짜, 고도 int- (ft) ); 테이블 캐피탈 생성 ( State Char (2) 고유 한 널 ) 상속 (도시);
이 경우 행캐피탈
상속모든 열 (이름, 인구및고도)에서부모, 도시
. 열의 유형이름is텍스트, 원주민스포츠 토토 베트맨가변 길이 문자열을 입력하십시오. 그만큼캐피탈
테이블은 추가 열이 있습니다State, 상태 약어를 보여줍니다. 안에스포츠 토토 베트맨, 테이블은 0 이상의 다른 테이블에서 상속 될 수 있습니다.
예를 들어, 다음 쿼리는 500 피트 이상의 고도에 위치한 주 대문자를 포함한 모든 도시의 이름을 찾습니다.
이름, 고도를 선택하십시오 도시에서 고도 500;
반환 :
이름 | 높이 -----------+---------- 라스 베이거스 | 2174 마리포사 | 1953 매디슨 | 845 (3 줄)
반면에 다음 쿼리는 주 대문자가 아닌 500 피트 이상의 고도에 위치한 모든 도시를 찾습니다.
이름, 고도를 선택하십시오 도시에서만 고도 500;
이름 | 높이 -----------+---------- 라스 베이거스 | 2174 마리포사 | 1953 (2 줄)
여기전용전도시| 쿼리는에서만 실행해야 함을 나타냅니다.도시
테이블, 아래 테이블이 아님도시
상속 계층에서. 우리가 이미 논의한 많은 명령 -select, 업데이트및삭제- this 지원전용표기법.
참고 :상속은 종종 유용하지만 고유 한 제약 조건이나 외래 키와 통합되지 않아 유용성을 제한합니다. 보다스포츠 토토 베트맨 PostgreSQL : 문서 : 9.6 : 상속자세한 내용은