我有以下内容:如何删除记录如果我可以先删除其他记录?
一个文件可以包含另一个文件(一个视频文件包含音频和字幕),并且通常不会单独保存内容文件,只会显示为主文件的一部分。然而在一些特殊情况下,我将一些内容文件分开保存。
另外我有商店,所以如果是主文件,并且如果我有一个辅助文件保存在主文件的一部分中,则一个文件在商店中。
所以我有这样的两个表:
- 文件(IDfile,...);
- FilesContainsFiles(IDContainerFile,IDContentFile);
- 百货(IDStore,...)
- StoresHaveFiles(IDStore,IDFile)
如果我想删除一个主文件,我想只能从特定sotre删除,因此,如果该文件是在其他商店中,我不想删除该文件。如果该文件不在另一个商店中,我想删除该文件,因为它无法在数据库中获得该信息。
此外,我想要删除所有的内容文件,仅当内容文件没有存储在另一个存储单独的主文件之外。
为了确保我无法删除其他商店中的文件,我不会删除StoresHasFiles上的关联级联,因此通过这种方式我得到了一个外国人关键错误。
所以我想按照这个步骤:
- 尝试删除主文件。如果我可以做到,请尝试删除内容文件。
我想我需要一个事务来做到这一点,但我不知道该怎么做。
我不知道我是否可以声明一个列表,其中包含我尝试删除的文件,如何迭代此列表以及如何尝试删除内容文件,以及如果某些内容文件无法删除因为存储在其他地方,请尝试删除下一个内容文件。
也许有另外的选择来解决这种情况?
谢谢。