2013-01-31 45 views
0

我需要有經驗的人的意見,ASP.NET MVC 3 C#MySQL,使用ON DELETE CASCADE功能或在CONTROLER中刪除行?

MySQL的情況下,2個表,一對多的關係:

我有一個表與A_ID(PK)和A_name,並與B_ID一個表B(PK )和B_foto和A_id(FK到表A(A_id))

如果我把FK ON DELETE CASCADE選項,然後刪除表A中的一個行,表B中引用到A_id的所有行都將被刪除,對吧?好吧,

但是,如果B_foto是一個字符串與一些文件圖像的路徑,我也想刪除文件,對我來說最好不要使用ON DELETE CASCADE選項並在控制器(C#)中檢查manualy(如果表B有一些對A的引用並刪除行手動因爲我也想刪除de文件)。

如果我使用ON DELETE CASCADE選項,我將放棄對我想要刪除的文件的引用。對吧?

也許如果我保留ON DELETE CASCADE選項,並首先檢查表B的表A的引用只刪除文件,然後我刪除表A中的行,它(mySQL)刪除表B中的ROWS ..

希望你能闡明我對這個問題..

回答

0

選擇的後面似乎是一種更可靠的解決方案,因爲你不需要,除非刪除是一個成功的更改提交到數據庫。

雖然沒有單一的方法去解決這個問題,但使用級聯刪除仍然是一個有效的選項,你只需要看看執行順序;)遍歷文件,刪除進程,成功刪除父項行。

+0

Thankyou爲你的答案,也許你可以投我的問題,它會幫助其他人有同樣的懷疑.. 我認爲,我會迭代de子表刪除德文件,然後我刪除父錶行和(與刪除級聯)它刪除de childs行,我已經刪除了相應的文件.. –