在重新创建CMS时,我想要一种传统的父/子方法的替代方法来管理站点地图/页面层次结构。我记得前一段时间见过嵌套的集合模型,但是不记得它叫什么了。因此,我偶然发现了一种类似的方法,我想评估和比较这些属性,以确保以后不会遇到愚蠢的限制,因为我没有使用耗时考验的方法。因此,请告知是否A)它已经被发明(它叫什么?!),B)属性上有根本的缺陷,或者C)这是一个好方法(请给出充分的理由!)。
考虑以下列表:
在嵌套集模型下,我相信您使用深度优先遍历存储每个节点的左/右描述符:
Home 1-18
About Us 2-3
Contact Us 4-5
Products 6-13
Clothing 7-8
Books 9-10
Electronics 11-12
Knowledge Base 14-15
Other stuff 16-17
这是我开始喜欢的“错误方式”:
Home 1-9
About Us 2-2
Contact Us 3-3
Products 4-7
Clothing 5-5
Books 6-6
Electronics 7-7
Knowledge Base 8-8
Other stuff 9-9
我存储的是ID和LAST_CONTAINED_ID,而不是左/右对。我发现许多属性是相同的(或非常相似):
此外,该ID还提供特定于订单的唯一标识符(没有空格!)。为了简化起见,我发现存储DEPTH和PARENT引用也更加容易,但是从我的理解来看,嵌套集也几乎相同。
那么,这算作一个嵌套集吗?并且它已经是一种常见的方法了(但是为什么我以前没有听说过……)?我有充分的理由为此使用真正的嵌套集吗?
我欢迎您的想法。
最佳答案
它提供的唯一优势是“无间隙”功能,但是要实现这一点,您必须更改应用于右值的逻辑。在原始模型中,您通过查看所有值6 另一个较小的困扰是,在原始版本中,从12跳到14会突出显示您已更改级别,而在模型中则没有这种视觉提示。
因此,如果您很乐意使用(
关于php - 我对任意深度层次数据集: Good or Bad?的嵌套集的替代,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8136377/