查找()CakePHP的每个匹配字段的一个

问题描述:

旅行的hasMany腿查找()CakePHP的每个匹配字段的一个

机场没有关联

我如何才能找到使用CakePHP每个目的地机场的最便宜的旅行?

现在,我唯一能想到的就是通过一系列机场进行预告。这将需要数百个对数据库的查询(我认为这不是最快的方法)。另外,我认为这种数据类型的东西应该在CakePHP约定的模型中(胖模型,瘦型控制器)。我读到了调用不同模型的函数,比如getAirports,我可以使用loadModel,但是我发现在CakePHP的控制器方法部分。应该如何将另一个模型的数据/模型功能变成另一个模型?

谢谢!

+0

在您提供的代码中,您循环了$个机场,但没有在任何地方使用$机场。你一遍又一遍地执行相同的查询。你错过了一个条件? – RabidFire 2010-12-01 02:38:51

+0

是的,我发布的代码绝对只是一个起点,早些时候我发布时我已经筋疲力尽了。我将尝试再次弄清楚这件事情,如果我无法得到它,可能会发布/编辑其他内容。感谢您的评论。 – JohnAllen 2010-12-01 02:49:52

第二个问题“如何在另一个模型中加载模型?”的答案可以找到here

如果您正在寻找更好的算法,我现在没有解决方案。 Mine是一个设计解决方案:基本上,您应该为您的目的地机场添加一个字段,每次添加新航班时都会进行更新,以便您直接在目的地记录中获得您的信息。

如果我已经理解了您的问题,这表示我的立场。我不是英语,所以我不熟悉的语义的“腿”有关一趟(对我来说这是一个身体部位)

您正在解决的问题就是旅行商问题:http://en.wikipedia.org/wiki/Travelling_salesman_problem

从我看过的谷歌地图是如何做到的,你需要预先计算你最常见的路线和连接。将预计算信息保存在便宜的缓存中(memcache prolly)。基本上,每次都不能重新计算,因此需要计算一些常用值并构建预计算缓存。

WRT算法,一些谷歌搜索将成为你的朋友提示和技巧。这个问题已经被解决了很多次(没有一个在计算上是高效的,这就是为什么你需要预先计算和缓存)。