Skip to content

部门管理修改树状结构的父子级时可能会出现数据环形 #803

@luocheng0208

Description

@luocheng0208

复现步骤
image
如上图红框所示,有个三层树结构:
顶级
——111
————222

现在我想要将111的父级设置成为222,系统会提示成功,如下图所示
image
但是此时就会导致111的父级是222(即111的pid=222的id),但原本222的父级就是111(即222的pid=111的id)。如此一来111的父级是222,222的父级又是111,这样一来就导致了父子之间的数据环形,界面上已经无法展示111和222之间的树状关系,如下图修改成功后的界面:
image

但是实际数据库中这两条数据还存在,但是由于111和222的两者的pid导致了数据环形,界面上却无法显示,数据库截图如下:
image

总的来说:就是当修改一行数据的所属父级时,只要选择的父级是该行数据下的子级,就会发生这样的错误,一旦错误,就会导致该行数据以及它下面的子级数据形成数据环形,无法形成树状结构,且导致数据库的数据成为脏数据。

此问题所有地方有树状结构编辑的地方都可能发生,例如菜单管理也是树状结构,可以检查所有有树状结构编辑的地方,以免遗漏。

Metadata

Metadata

Assignees

No one assigned

    Labels

    FixedbugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions