2010-11-23 43 views
0

鉈;博士:(我寧願學人以魚不如可以投餵魚,但我有麻煩教我用5臺DB CakePHP的關聯)協會幫助CakePHP-航班搜索示例

所以,我與數據庫人員一起在一個航班搜索項目上工作。他設計了相應的外鍵的數據庫,我相信他已經做了很好的工作,因爲他與數據庫工作在一個大硅谷有限公司..

我們已經得到了數據庫中的這些表:

  1. 旅程
  2. 段(A段是一個腿的一部分和跳閘包含多個腿)
  3. 機場
  4. 航空公司

我應該在CakePHP中用一個更簡單的模式來完成我的第一個項目,但這不是一個真正的選項:這裏有什麼正確的關聯?

現在我有這個:

旅行有很多腿; foreignkey trip_id腿表

腿屬於旅行;外鍵trip_id在腿表中

腿有許多段;段中的外鍵leg_id表

就是這樣。很明顯,我需要更多地充分利用CakePHP(至少我這麼認爲),並且我認爲我受到數據庫設計的阻礙(並不保證我的朋友已經設計了最佳)。我只是不知道如何去做機場和航空公司。

我花了幾個小時在Google上搜索並重新閱讀我正在使用的書。感謝您的幫助和一般CakePHP協會建議/想法。

回答

2

一般來說,保持你的關聯雙向。

  • 旅行的hasMany腿
  • 腿屬於關聯旅行
  • 腿的hasMany段
  • 段屬於關聯腿

這將允許您訪問的模型,像這樣:

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

腿和段也一樣。此外,CakePHP模型的命名約定規定它們是單數的。 :)