2010-02-09 2 views
0

테이블 :도시 belongsThroughCountyTo 주 협회, 코드를 단순화하는 방법?

Province hasMany County, County belongsTo Province, County hasMany City, City belongsTo County

같은 기본적으로 뭔가 : City belongsThroughCountyTo Province 상황

: 나는 다운 메뉴를 선택 드롭을 검색 폼에서

지방과.

은 "코드"나는 결과를 나열 할 때

, 내가 먼저 지정된 지역에 속하는 한 다음 City.county_id IN (array_of_counties_ids_here)을 카운티의 ID를 얻을.

질문 : 나는 더 나은 방법으로 그 일을 할 수

내 질문은? 먼저 counties 테이블에 액세스하지 않아도됩니다. 간단한 삼자 조인은 트릭을해야하지만, 나는 Cake에서 그것을 구현하는 방법에 대한 아이디어가 없다.

도시 테이블에 province_id 필드를 추가하는 것은 해결책이 아닙니다 (테이블을 변경할 수 없음).

답변

1

City와 Province를 직접 연결하는 SQL의보기를 작성하여 피해야합니다.

는 당신이있어 가정하면 그가 생성되면

, 당신이 할 수있는
tblCity 
    city_id 
    county_id 
    name --etc 
tblCounty 
    county_id 
    province_id 
    name --whatever else 
tblProvince 
    province_id 
    --whatever else 

create or replace view CityToProvince as 
    select c.city_id, p.province_id from tblCity c 
    join tblCounty co on co.county_id = c.county_id 
    join tblProvince p on p.province_id = co.province_id; 

:

select province_id from CityToProvince where city_id = [whatever]; 
+0

글쎄, 그건 좋은 대답이, 그리고 내가보기를 만드는 방법에 대한 생각,하지만 것입니다 ... 데이터베이스에 대해서만 SELECT 권한이 있습니다. – PawelMysior

+0

아. 그것은 물건을 댐퍼 것입니다. DBA가이 뷰를 만들 수 있습니까? 우리 회사의 프로덕션 데이터베이스에 대한 읽기 액세스 권한 만 있지만 이처럼 물건을 전달할 수있는 사람들이 있습니다. –

+0

보기를 만드는 것이 유일한 방법 인 것 같습니다. 나는 관리자에게 멋지게 물었다. 나는 그것을 얻었다;] 고마워. – PawelMysior