处理级联碰撞


Dealing with cascading collisions?

我有一个设置,其中我们有类别,

每个类别都有一个标题和一个parent_id。

创建/编辑类别时,我们会进行检查,以确保具有相同parent_id的类别没有相同的名称。

这很容易。但现在我正在删除这些类别。

类别可以有无限级别。因此,如果我们删除一个类别,它的子类别会移动到父类别。这很好,但当发生碰撞时,我不知道该怎么办。

我应该在删除页面上做一个预检查,并禁用删除按钮,并有类似的东西:

无法删除此类别,因为它将在parent_of_current->something类别和current->something类别来创建冲突。请删除或重命名其中一个类别。

或者我应该得到警告:

此操作将在parent_of_current->something类别和current->something分类之间创建冲突。继续操作还将删除当前->something/strong>类别!

或者我还能做些什么吗?

老实说,我喜欢第二种选择,但我认为如果它造成另一次碰撞,那么很可能会遇到同样的问题。

我会重命名有问题的类别,以表明它需要注意。即将Sales移动到Sales已经存在的位置,它将变为Sales-1或Sales-2,因此用户需要对其进行重命名,以防止数据丢失。(就像把一个文件复制粘贴到同一个目录中一样)这样你就可以分辨出哪个是原始文件。