2

在嵌套集模型中,我们有 LEFT 和 Right 列

第一次空表时,我需要在 RIGHT 列中插入什么,如果我不知道我会有多少个孩子

左 1 - 永远

对 ?- 这里有什么价值?

如何让它动态?不是静态的。

ps:使用php

4

1 回答 1

7

我从您的标签和标题中假设您正在寻找适用于MySQL的解决方案。

是的,你是对的,除非你事先知道元素的数量,否则right需要动态计算值。您可以使用两种方法:

  • 您可以从有效的最小值开始(在本例中为 2),然后根据需要增加它。
  • 您可以只进行 10000000 之类的猜测,并希望这已经足够了,但是您需要为它还不够的可能性做好准备,以后可能需要再次调整。

在这两种情况下,您都需要实现在插入新行时可能需要调整多行的leftand值,但在第二种情况下,您实际上只需要在您的猜测错误时执行更新。right所以第二种解决方案更复杂,但可以提供更好的性能。

请注意,在存储分层数据的四种常用方法中,嵌套集方法是最难执行插入和更新的方法。请参阅 Bill Karwin 的层次数据模型的幻灯片 69 。

嵌套集更新难度

于 2012-07-07T07:19:34.370 回答