gpt4 book ai didi

mysql - 在mysql中删除层次结构的最有效方法是什么

转载 作者:行者123 更新时间:2023-11-30 22:04:50 24 4
gpt4 key购买 nike

我正在使用邻接表的修改版本来存储分层数据。所以创建了这种树。 enter image description here

在 mysql schema 中也是这样表示的:

enter image description here删除 C 之间的节点的最佳方法是什么,以便子 F、G 现在是 A 的子节点?

最佳答案

在应用程序级别,您需要列出要删除的节点的子节点,并将这些子节点的级别列分配给父节点。否则,您可以在从表中删除节点时创建触发器,这将执行上述任务。如果您正确地构建了表格,那么您的所有任务都会容易得多。表应该只是保存直接父项的父子关系。

 Id Name   ParentId
1 A NULL
2 B 1
3 D 2

级别可以由编号决定。递归完成的次数。
您现在甚至可以通过添加父列并编写一个脚本来添加列中可用的最后级别。
所以在这种情况下,删除将很简单
1. 获取 child 列表 - 其中 parentid=nodeid。
2. 用nodeids 的parentid 更新它们的父列。
而不是更新和计算所有 3 个级别的列。

关于mysql - 在mysql中删除层次结构的最有效方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42134408/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com