2009-09-26 65 views

回答

3

除非您爲兩個主表之間的表創建模型,否則唯一的選擇是使用DAO(數據庫訪問對象)並指定SQL。

看看博客演示如何完成此任務。

0

,你可以設置了在MySQL level..by在phpMyAdmin每個桌子底下去關係視圖,並提供模型類的內部關係,必要的關係condition..and使用MANY_MANY ..

1

下面的擴展你想要做什麼...... Yii Framework - Extension: cadvancedbehavior

一個重要的事情需要注意:在每次更新,擴展清除所有以前的記錄,並創建新的。所以當intermediatry表包含外鍵以外的其他數據時,我不會使用它。

0

這個問題太常見了。

通常具有許多到多個關係的數據組件依次且獨立地出現。所以你只需要做一個接一個的動作。

如果您的關係需要依賴更新,您應該在DataBase級別上使用用戶SQL triggers。這將確保數據的完整性,並在應用程序的業務邏輯中給出相當好的分離。

CREATE TRIGGER some_trigger 
    AFTER UPDATE ON some_table 
    ... 
END IF; 

類似的方式是在PHP水平一個邏輯模型incapsulate關係數據(並且例如用2-3 AR模型有操縱)和模擬SQL觸發器邏輯中它。

+0

觸發器對於維護來說是非常可怕的。首先你可能會考慮使用數據庫fks和級聯...觸發器可能是真正的最後一種選擇。 – armandomiani

+1

你一定是在開玩笑吧,不是嗎?級聯的確是觸發器!但是你不能在插入時使用它們。此外,MySql的MyIsam引擎不支持FK,例如關於維護,我不知道維護一個數據庫過程有什麼問題,特別是如果它是一個微不足道的(並且類似於FK級聯) –