php – 我对任意深度分层数据集的嵌套集的厌恶:好还是坏?
在重新创建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 = 1 此外,ID提供特定于订单的唯一标识符(没有间隙!).为了简单起见,我发现更容易存储DEPTH和PARENT引用,但对于嵌套集也是如此,我理解的也是如此. 那么,这算作嵌套吗?它是否已经是一种常见的方法(但为什么我之前没有听说过……)?我有理由在这个上使用真正的嵌套集吗? 我欢迎你的想法.
它提供的唯一优势是“无间隙”功能,但要实现这一点,您必须更改应用于右值的逻辑.在原始模型中,您可以通过查看所有这些值6来获得“产品”的子项. ..< 13,但在你的模型中,你通过看到值4< ..< = 7.必须处理与左值不同的右值,使其稍微不那么优雅. 另一个小抱怨是,在原版中,从12跳到14突出显示你已经改变了水平,而在你的模型中你没有得到这样的视觉线索. 因此,如果您喜欢使用(<,< =)代替(<,<)那么它就可以了. (因为它似乎是等同的,我不能说'好'或'坏',但你已经强调了实施较少旅行路径的危险.)
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |