2010-03-19 87 views
1

我們正在構建一個使用CakePHP的數據跟蹤Web應用程序,並且我遇到了一些問題,使數據庫結構正確。我們有公司擁有多個網站。網站有許多數據示例。標籤haveAndBelongToMany站點。CakePHP模型的數據庫結構

這一切都設置好了。問題在於「排名」標籤內的網站。我們需要將它作爲存檔存儲在數據庫中。我創建了一個序列模型是建立這樣的:

rank (
    id (int), 
    sample_id (int), 
    tag_id (int), 
    site_id (int), 
    rank (int), 
    total_rows) 
) 

那麼,是,我怎麼創建標籤,現場和樣本的關聯問題進行排名?我最初將它們設置爲haveMany。但是,返回的結構並沒有讓我想去哪裏。

它看起來像:

[Site] => Array (
    [Sample] = Array(), 
    [Tag] = Array() 
) 

當我真正需要的:

[Site] => Array (
[Tag] = Array (
    [Sample] => Array (
     [Rank] => Array (
      ...data... 
     ) 
    ) 
) 
) 

我認爲我可能無法正確構建數據庫;所以如果我需要更新,請讓我知道。否則,我該如何編寫一個查詢查詢,讓我可以在需要的地方訪問?謝謝!

想法?需要更多細節?請問!

+0

標籤是否適用於樣本或網站? – 2010-03-19 23:40:09

回答

1

根據你想要的數據格式,我建議你改變網站haveMany樣品標籤的hasMany samples.And確保你已經儲存卡是

samples_tags (
id (int), 
sample_id (int), 
tag_id (int) 
) 

而且還要檢查你所定義的模型的表關聯正確。更多詳情請參閱HABTM in cookbook

1

要獲得該格式...

標籤hasOne樣品 樣品hasOne或排名的hasMany

另一種方法是「模式破解」我叫它,它基本上創建與模型的定製方法類,該exec自定義查詢和格式化結果如何你的願望。