CakePHP-航班搜索示例中的关联帮助

时间:2010-11-23 06:25:50

标签: database-design cakephp associations

Tl;博士:(我宁愿学习捕鱼而不是喂鱼,但我很难自学CakePHP与5桌DB的关联)

所以,我正在与一个数据库人一起开展飞行搜索项目。他用适当的外键设计了数据库,我相信他做得很好,因为他在硅谷一家大公司的数据库工作。

我们在数据库中有这些表:

  1. 行程
  2. 细分(细分是腿的一部分,旅程包含多条腿)
  3. 机场
  4. 我可能应该在CakePHP中使用更简单的模式进行我的第一个项目,但这不是一个真正的选项:这里有什么正确的关联?

    现在我有这个:

    旅行有很多腿;在腿表中的foreignkey trip_id

    腿属于旅行;腿表中的外键trip_id

    腿部有很多部分;分段表中的外键leg_id

    就是这样。显然我需要更多来完全使用CakePHP(至少我是这么认为),我认为我受到了数据库设计的阻碍(不能保证我的朋友已经设计得最佳)。我只是不确定如何做机场和航空公司。

    我花了几个小时谷歌搜索并重新阅读我正在使用的书。感谢您提供的任何帮助和GENERAL CakePHP-Association建议/想法。

1 个答案:

答案 0 :(得分:2)

一般来说,保持你的协会双向。

  • Trip hasMany Leg
  • 腿属于旅行
  • Leg hasMany Segment
  • Segment belongsTo Leg

这将允许您访问如下模型:

$this->Leg->Segment->create();
$this->Segment->Leg->create();
$this->Segment->Leg->Trip->create();

Leg和Segment也是如此。此外,CakePHP模型的命名约定规定它们是单数的。 :)