2
在我们已经离开了嵌套集模型和右栏如何在嵌套集合模型(MySQL)中插入数据;
当表是空的,什么我需要插入到右列,如果我不知道有多少孩子,我有在第一时间
LEFT 1 - forever
RIGHT? - 这里有什么价值?
如何让它动态?不是静态的。
PS:使用PHP
在我们已经离开了嵌套集模型和右栏如何在嵌套集合模型(MySQL)中插入数据;
当表是空的,什么我需要插入到右列,如果我不知道有多少孩子,我有在第一时间
LEFT 1 - forever
RIGHT? - 这里有什么价值?
如何让它动态?不是静态的。
PS:使用PHP
我从你的标签和标题,你正在寻找与MySQL的有效的解决方案假设。
是的,您是对的,除非您事先知道元素的数量,否则需要动态计算right
的值。有两种方法可以使用:
在您需要实现多行left
和right
值可能需要插入新行的时候进行调整,这两种情况下,但是在第二种情况下,你实际上只需要执行,如果你的猜测是错误的更新。所以第二个解决方案更复杂,但可以提供更好的性能。
请注意,在存储heirarchical数据的四种常用方法中,嵌套集方法是执行插入和更新的最难的。请参阅Bill Karwin的Models for Heirarchical Data幻灯片69。
xmmmm,但如果我使用邻接表我将不得不作出这样留下了许多疑问JOIN等等是静态的深度,所以仍然是2设计路径枚举和关闭表是更好的自由裁量权? – 2012-07-07 07:36:11
也是每一个节点都会有很多儿童,他们将有其他儿童,好像嵌套模式不利于这个...所以什么样的设计是更好地使用,当你不知道你会多少级呢?或记录 – 2012-07-07 07:38:54
这概述非常MySQL的中心,因为查询子树归类为“易”为所有那些支持递归查询DBMS(这是一个很值得主流功能时下)。 – 2012-07-07 08:48:13