ZEND

2011-11-30 45 views
1

在一個查詢中訪問多個數據庫表我有一個模型,它包含幾種類型的產品,這些產品都存儲在不同的MySQL數據庫中,但都有一個存儲在另一個表中的「父」產品。父表被稱爲「產品」,包含除其他變量:ZEND

id 
type 
price 
name 

「孩子」的一個例子是「書」,其中將包括除其他外:

id 
meta_id 
pages 

另一個「孩子」可能是「dvds」:

id 
meta_id 
tracks 

其中子項的meta_id等於父項的id。

在老式的MySQL我會用得到的所有的書:

SELECT 
    p.id, p.type, p.price, p.name, b.pages 
FROM 
    products p 
LEFT JOIN 
    books b 
ON 
    p.id=o.meta_id 

我知道如何從一個數據庫表使用Zend,延長Zend_Db_Table_Abstract,並使用映射&讀&寫數據到&模型。我只是不知道如何做到這一點,如果我必須讀/寫存儲在多個數據庫表中的對象。我如何設置?我應該使用什麼樣的模式/模式?我確信這是非常標準的東西,但是我已經搜索了幾天的清晰例子,而且我似乎無法弄清楚。

+0

你可以使用老式的方式了。 '$ oDb-> fetchAll(/ * string mysql * /);'$ oDb是Zend_Db :: factory函數(帶參數) – noob

+0

謝謝,但我不想使用編寫完整查詢的舊方法。 –

回答

1

我和你有完全一樣的困惑,這裏有一個很棒的頁面 - Zend Framework Data Models - 它解釋瞭如何解決這個確切的問題。你會看到ZF擁有很好的設施來處理這種事情(使用像Doctrine這樣的ORM)。

而且,當你查詢多個表,它是有用的瞭解完整性檢查,這裏提到Zend Framework Db Select Join table help

+0

謝謝!該頁面看起來可能有解決方案。 –