Php 市所属县到省协会,如何简化代码?

Php 市所属县到省协会,如何简化代码?,php,sql,cakephp,model,associations,Php,Sql,Cakephp,Model,Associations,表格: 省有许多县,县属于省,县有许多市,市属于县 所以基本上是这样的:城市从县城到省 情况: 在搜索表单中,我有一个带有省的选择下拉菜单 该“代码”: 当我列出结果时,我首先获取属于指定省的县的id,然后在(这里是县的数组\u\u id)中执行City.country\u id 问题: 我的问题是,我能用更好的方式来做吗?没有先访问Countries表。一个简单的三方连接应该可以做到这一点,但我不知道如何在Cake中实现它 在我的情况下,向cities表中添加省\u id字段不是一个解决方案(

表格:

省有许多县
县属于省
县有许多市
市属于县

所以基本上是这样的:
城市从县城到省

情况:

在搜索表单中,我有一个带有省的选择下拉菜单

该“代码”:

当我列出结果时,我首先获取属于指定省的县的id,然后在(这里是县的数组\u\u id)中执行
City.country\u id

问题:

我的问题是,我能用更好的方式来做吗?没有先访问Countries表。一个简单的三方连接应该可以做到这一点,但我不知道如何在Cake中实现它


在我的情况下,向cities表中添加
省\u id
字段不是一个解决方案(无法更改表)。

您应该通过在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];

嗯,这是一个很好的答案,我想提出一个观点,但问题是。。。我对数据库只有选择权限。啊。那会让事情变得更糟。您能让DBA为您创建此视图吗?我只能读取我们公司的生产数据库,但我可以把这样的东西传给一些人。创建视图似乎是唯一的方法。我友好地问了管理员,我明白了;]谢谢