给定以下类型的数据结构。
ID NAME TREELEFT TREERIGHT 父母 1 XYZ 1 2 0 2 美国广播公司 3 6 0 3 防御力 4 5 2 4 希杰 7 10 0 5 荷航 8 9 4 6 空操作 11 16 0 7 QRS 12 15 6 8 TUV 13 14 7
该方法或多或少与嵌套集模型相同,只是我包含了一个父项,只是为了让我的生活更轻松一些。( https://en.wikipedia.org/wiki/Nested_set_model#Example ) 我需要想出一种检测差距的方法。例如,如果 ID=6 有不同的树权,比如 17。技术上会有 1 的差距。
目前,我已经在一系列不同的查询中完成了这项工作。
一个检测 treeright 是否不超过 2n,另一个检测 treeright 是否总是 > than treeleft。另一对确保没有 treelefts 或 treerights 彼此相同。
但是,如果我可以添加检查以确保树没有间隙,我确信其他几个测试将变得多余。谁能想到一个好方法来做到这一点。很长一段时间以来,我一直在为这个问题绞尽脑汁。
我花了一段时间才弄清楚这个。