부동산 (아파트, 주택, 산업 공간, 사무실)의 데이터베이스가 있고 각각 공통 속성 집합 (주소, 가격, 설명과 같은 모든 구성에 공통된 데이터베이스)이 있다고 가정 해보십시오. 텍스트, 좌표, 건물 내부의 사용 가능한 표면, 저항 프레임 재질 유형 (강철, 목재, 점토 : D 등). 해야할까요 :데이터베이스 설계 및 뷰에 관한 질문
1) 테이블, 아파트, 주택, 사무실 등을 만들고, 모든 구성이 포함 된 선택 쿼리를 수행 할 때 모든 테이블을 기반으로 모든 테이블 중에서 선택하는 뷰 (예 : all_constr)를 사용하십시오. (예 : 나무로 만들거나 콘크리트 스틸 또는 점토로 만든 저항 프레임)
나는보기가 두포에서 어떻게 작동하는지 잘 모르겠다. 하지만 내가 생각하는 것처럼 뭔가를 할 경우
SELECT * FROM all_constr AS a --all_constr is the view
WHERE a.price <50000 AND a.surface >100 ;
위의 쿼리를 실행할 때마다 특정 건물 테이블은 다음과 같습니다. 가상 테이블을 생성하기 위해 한 번 반복하고 필터링을 다시 수행합니다. 이것은 매우 효율적으로 보이지 않습니다. 반면 가상 테이블 AKA 뷰가 실제 테이블로 저장되는 경우 케이스 2)와 거의 동일합니다 + 빌딩 고유의 세부 정보를보고 싶을 때 고유 한 것이 없기 때문에 운이 좋지 않습니다. 이 같은
CREATE VIEW all_constr AS
SELECT x.common_att1, x.common_att2, x.tableoid, x.id
FROM aps AS x
UNION ALL
SELECT x.common_att1, x.common_att2, x.tableoid, x.id
FROM houses AS x
UNION ALL
SELECT x.common_att1, x.common_att2, x.tableoid, x.id
FROM ind_spaces AS x
2)은 constr 말 (다른 테이블을 작성) 및 링크 APS, 주택 : 등 주택, APS, 전역 식별자는 하나의 솔루션으로, 나는 생각의이 같은 뷰를 생성하는 것입니다
http://imageshack.us/photo/my-images/31/unledkwx.png/ 탁상용을 사용할 필요가 없다는 이점이 있습니다.
그래서 당신이보기를 사용하는 것이 좋은 습관이라는 것을 여러 번 듣고 읽는 방법으로 보는 것이 좋습니다.
LE : 나는이 너무 포스트 그레스 특정으로 상속을 사용하지 않도록하고 싶습니다 가능하면 PostgreSQL을에, 뷰가 rules을위한 속기이다