0

経験者の方の意見が欲しいのですが、

mySQL の状況、2 つのテーブル、1 対多の関係:

A_id(PK) と A_name を持つ 1 つのテーブル A と、B_id(PK) と B_foto と A_id(テーブル A(A_id) への FK) を持つ 1 つのテーブル B があります。

FK ON DELETE CASCADE オプションを指定して、テーブル A の ROW を削除すると、A_id を参照するテーブル B のすべての行が削除されますよね? わかった。

ただし、B_foto がファイル イメージへのパスを含む文字列であり、ファイルも削除したい場合は、ON DELETE CASCADE オプションを使用せず、テーブル B に参照がある場合はコントローラー (C#) で手動で確認することをお勧めします。ファイルも削除したいので、Aに行を手動で削除します..

ON DELETE CASCADE オプションを使用すると、削除したいファイルへの参照が失われます..そうですか?

たぶん、ON DELETE CASCADE オプションを保持し、最初にテーブル B でテーブル A への参照をチェックしてファイルを削除すると、テーブル A の ROW が削除され、(mySQL) テーブル B の ROWS が削除されます。

あなたがその質問について私を解明できることを願っています..

4

1 に答える 1

0

削除が成功しない限り、変更をデータベースにコミットする必要がないため、後者の選択がより信頼できる解決策のようです。

これに対処する唯一の方法はありませんが、カスケード削除を使用することは依然として有効なオプションですが、実行順序を確認するだけで済みます;) ファイルを反復処理し、削除を処理し、成功したら親行を削除します。

于 2013-01-31T22:09:44.553 に答える