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

Mis*_*PHP 2 php mysql database nested-sets

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

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

左一 - 永远

对 ? - 这里有什么价值?

如何让它充满活力?不是静止的.

ps:使用php

Mar*_*ers 6

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

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

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

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

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

嵌套集更新难度