2014-10-18 32 views
0

我正在使用mysql和cakephp 2.5MySQL和cakephp允許這種表關係嗎?

我有3個表。

  • TableA與TableC有一對多的關係。 TableB與TableC有一對多的關係。
  • 我想刪除父表TableB中的行而不刪除TableC中的關聯子行。

以上2條件可以在cakephp和mysql中完成嗎?如果是,那麼爲這些條件配置什麼?

+0

是的,您可以從任何您想要的表中刪除行而不從其他表中刪除表。我懷疑你真的在問什麼。請嘗試通過您嘗試過的例子,您遇到的問題等等,在您的問題中更具體。 – Dave 2014-10-18 03:11:29

+0

_你可以做什麼和_你應該做什麼_是兩個不同的討論。這聽起來好像TableC中的一行與TableA和TableB之間可以有參照完整性。在這種情況下,如果您違反參照完整性,則不應從TableB中刪除。您應該將示例數據添加到此問題。 – AgRizzo 2014-10-18 13:27:34

回答

2

默認情況下,cakephp在刪除記錄時不會刪除關聯的行。您可以使用依賴參數進行設置。

所以,如果你想從表C依賴的記錄被刪除時,從tableA的記錄被刪除,你必須讓你的關係是這樣的:

class ModelA extends AppModel { 
    public $hasMany = array(
     'ModelC' => array(
      'dependent' => true 
     ) 
    ); 
} 

而對於ModelB不應從表C時刪除行從表B的一行被刪除:

class ModelB extends AppModel { 
    public $hasMany = array(
     'ModelC' 
    ); 
} 

我認爲這是你需要的嗎?