表格
Province hasMany County
,County belongsTo Province
,County hasMany City
,City belongsTo County
基本上类似于:City belongsThroughCountyTo Province
情况:
在搜索表单中,我有一个带省份的选择下拉菜单。
“代码”:
当我列出结果时,我首先获得属于指定省份的县的ID,然后执行City.county_id IN (array_of_counties_ids_here)
。
问题:
我的问题是,我能以更好的方式做到吗?没有首先访问县表。一个简单的三向连接应该可以解决问题,但我不知道如何在Cake中实现它。
在cities表中添加province_id
字段不是我的解决方案(不能改变表格)。
答案 0 :(得分:1)
您应该通过在SQL中创建一个直接将City链接到Province的视图来避免这种情况。
假设你有:
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];