Şehir belongsThroughCountyTo İl dernek, nasıl kodu basitleştirmek için?

1 Cevap php

Tables:

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

Yani temelde bir şey gibi: City belongsThroughCountyTo Province

Situation:

Bir arama formu ben iller ile menü aşağı bir seçme düşüş var.

The "code":

Ben Sonuçları Listelemek zaman, ilk belirtilen eyalete ait ilçelerinden kimlikleri almak ve daha sonra bir City.county_id IN (array_of_counties_ids_here) yapmak.

Question:

Benim soru, ben daha iyi bir şekilde bunu yapıyor olabilir mi? İlk ilçe tablosunu erişmeden. Katılmak basit bir üç yol hile yapmak gerekir, ama ben Cake bunu uygulamak için nasıl bir fikrim yok.

Şehirler tabloya bir province_id alanını ekleyerek benim durumumda bir çözüm (tabloları değiştirmek değil) değildir.

1 Cevap

Doğrudan İl Şehir bağlantılar SQL bir görünüm oluşturarak bu kaçınmalısınız.

Eğer var varsayarsak:

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;

O oluşturulduktan sonra, şunları yapabilirsiniz:

select province_id from CityToProvince where city_id = [whatever];