2009-10-14 64 views
0

如果我想將記錄添加到表A,有沒有添加 在記錄的有效方式連接表許多(或全部)記錄在表BHABTM-關係:爲所有其他記錄的關係

我嘗試構建一個簡單的任務管理(在CakePHP中)。用戶添加一個任務,並且 將被添加到與當前用戶相同的組中的每個其他用戶的連接。目前,我使用find('list') - 方法來檢索ID並將它們存儲在一個變量中。但我認爲,如果組數增長,緩存將不會處理單個變量中的這些數據量。

回答

1

你應該看看Cake Has-And-Belongs-To-Many(HABTM)關係。檢查蛋糕書。它將允許您使用連接表創建兩個表之間的關係,並將自動檢索並保存應用程序中請求的值。

但是,請注意,從一個模型中,您不能(默認情況下)通過相關模型(在本例中,由連接表關聯模型)的條件進行過濾。爲此,您需要使用Containable行爲,這將允許您在相關表上設置篩選條件。

另一個警告是,我不知道有什麼方法(開箱即可)在連接表中添加關於關係的一些信息。例如,如果你想記錄(在連接表中)用戶是否完成了任務,那麼你必須在那裏編寫你自己的東西。我通常通過爲連接表創建一個模型來解決這個問題,然後每當我想要檢索特定於連接關係的數據時就會調用它。通過這樣做,您還可以輕鬆地從連接的表中提取數據。其他人有更好的解決方案?

+0

我已經熟悉HABTM關係的原理以及如何在cakephp中處理它們。 我要求一種處理大量新關係的方法,而不會耗盡緩存。 – Benedikt 2009-10-15 11:13:04