gpt4 book ai didi

php - Mysql分层数据按路径查找

转载 作者:行者123 更新时间:2023-11-29 00:57:10 24 4
gpt4 key购买 nike

正在关注 Managing Hierarchical Data in MySQL ,我已经很好地实现了分层数据的使用,但有人要求我添加功能以使用文件夹结构等路径检索数据。

我什至不确定如何开始这样做。

我试过将路径分解成单独的段并执行循环来构建 SQL 查询以这种方式进行搜索,但速度非常慢。

我处理这个问题的方法是否正确,您能否给我任何建议或链接来帮助我,好吗?我已经搜索了几个星期,但没有发现与此相关的任何内容,所以我猜这不是常见的做法。

最佳答案

您链接的分层数据文档具有基于同一个表上的多个连接的实现。如果这太慢,那么有一个不那么“纯粹”但应该更快的简单解决方案:

在您的表中添加一个“路径”列,该列以 varchar 形式存储从根目录到当前类别的路径。确保在该列上放置索引。例如:'电子产品>可移植电子产品>MP3 播放器>闪光灯'

我使用“>”作为类别名称之间的分隔符 - 确保您使用的任何内容都不会出现在您的任何类别中。

现在,为了使用记录的绝对路径检索记录,您可以使用定界符构建路径并查询完全匹配。您还可以使用 LIKE 查询并提供路径前缀,通过单个快速查询找到整个子树。

请注意,您还可以在路径后缀上使用 LIKE 查询来查询相对路径,甚至可以使用正则表达式做一些疯狂的事情。但是这些会很慢。但是,您可以添加更多列 - 例如反向路径 (FLASH>MP3 PLAYERS>PORTABLE ELECTRONICS>ELECTRONICS) 将允许对路径后缀进行快速查询。

关于php - Mysql分层数据按路径查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5492285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com