如何在嵌套集模型(MySQL)中插入数据;

时间:2012-07-07 07:12:58

标签: php mysql database nested-sets

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

表格第一次为空时,我需要插入到RIGHT列,如果我不知道我有多少孩子

LEFT 1 - 永远

对吗? - 这里有什么价值?

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

ps:使用php

1 个答案:

答案 0 :(得分:6)

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

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

  • 您可以从最小的值开始(在这种情况下为2)并在以后根据需要增加它。
  • 你可以做出10000000的猜测并希望这已经足够了,但是你需要做好准备,因为它不够,可能需要稍后调整。

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

请注意,在存储层次数据的四种常用方法中,嵌套集方法是执行插入和更新的最难。见Bill Karwin的Models for Heirarchical Data幻灯片69。

nested sets update difficulty