0

我需要有经验的人的意见,

mySQL情况,2张表,一对多关系:

我有一张带有 A_id(PK) 和 A_name 的表 A,还有一张带有 B_id(PK) 和 B_foto 和 A_id(FK 到表 A(A_id) 的表 B。

如果我把 FK ON DELETE CASCADE 选项,然后我删除表 A 中的一个 ROW,表 B 中引用 A_id 的所有行都将被删除,对吗?好的。

但是,如果 B_foto 是带有某个文件图像路径的字符串,并且我也想删除该文件,那么最好不要使用 ON DELETE CASCADE 选项,如果表 B 有一些引用,请在 Controler(C#) 中手动检查到 A 并手动删除行,因为我也想删除 de 文件..

如果我使用 ON DELETE CASCADE 选项,我将失去对我要删除的文件的引用.. 对吗?

也许如果我保留 ON DELETE CASCADE 选项,并首先检查表 B 中对表 A 的引用只是为了删除文件,然后我删除表 A 中的 ROW 并且它(mySQL)删除表 B 中的 de ROWS ..

希望你能解释我这个问题..

4

1 回答 1

0

后者似乎是更可靠的解决方案,因为除非删除成功,否则您不需要将更改提交到数据库。

虽然没有单一的方法可以解决这个问题,但使用级联删除仍然是一个有效的选项,您只需要查看执行顺序;)遍历文件,处理删除,成功删除父行。

于 2013-01-31T22:09:44.553 回答