Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在MySQL中构建面包屑_Php_Mysql_Performance - Fatal编程技术网

Php 在MySQL中构建面包屑

Php 在MySQL中构建面包屑,php,mysql,performance,Php,Mysql,Performance,我有一个表定义了我网站中可能的类别-字段如下所示: - id - name - parentID +-----+------+----------+ | id | name | parentID | +-----+------+----------+ | 1 | pets | 0 | +-----+------+----------+ | 2 | cats | 1 | +-----+------+----------+ | 3 | dogs |

我有一个表定义了我网站中可能的类别-字段如下所示:

- id - name - parentID +-----+------+----------+ | id | name | parentID | +-----+------+----------+ | 1 | pets | 0 | +-----+------+----------+ | 2 | cats | 1 | +-----+------+----------+ | 3 | dogs | 1 | +-----+------+----------+ 考虑改用“嵌套集”模型:

更新(基于对问题的澄清):嵌套集模型不必向最终用户公开(事实上,我很难想象它为什么会公开)。嵌套集模型支持所有目录样式的操作(添加新文件夹/子文件夹;将文件夹移动到其他路径等),尽管有些操作比其他操作更难实现。我链接到的文章提供了添加和删除(子)文件夹的示例。

考虑改用“嵌套集”模型:


更新(基于对问题的澄清):嵌套集模型不必向最终用户公开(事实上,我很难想象它为什么会公开)。嵌套集模型支持所有目录样式的操作(添加新文件夹/子文件夹;将文件夹移动到其他路径等),尽管有些操作比其他操作更难实现。我链接到的文章提供了添加和删除(子)文件夹的示例。

您是否可以在会话中存储一个包含您的面包屑的堆栈或有序集(按用户对其浏览应用过滤器的方式排序)

当您开始交叉查询时,我可以看到它变得越来越糟糕,但有时数据不是分层的,而是一堆标记,而上面这些开始成为您的标记库

大多数网站实际上没有好的(或任何)标签。例如,有多少次您在网站上查看销售CD,并希望深入查看金属CD(例如),但单击左侧的“Rock and Metal”(摇滚与金属)链接可进入顶级金属类别,而不是作为您当前浏览状态的过滤器


那么-您的问题实际上是一个标签汤,您正在应用一个错误的层次结构吗?实际上,您是否应该查看可以将项目传递到的自动标记生成库以及标记查找机制?好的,我相信你的个人网站不会太复杂,永远都不需要标签搜索,但总的来说,我认为这是值得考虑的。

你能在会话中存储一个包含面包屑的堆栈或有序集(按用户对其浏览应用过滤器的方式排序)吗

当您开始交叉查询时,我可以看到它变得越来越糟糕,但有时数据不是分层的,而是一堆标记,而上面这些开始成为您的标记库

大多数网站实际上没有好的(或任何)标签。例如,有多少次您在网站上查看销售CD,并希望深入查看金属CD(例如),但单击左侧的“Rock and Metal”(摇滚与金属)链接可进入顶级金属类别,而不是作为您当前浏览状态的过滤器


那么-您的问题实际上是一个标签汤,您正在应用一个错误的层次结构吗?实际上,您是否应该查看可以将项目传递到的自动标记生成库以及标记查找机制?好的,我相信你的个人网站不会太复杂,以至于需要标签搜索,但总的来说,我认为这是值得考虑的。

我稍微澄清了我的问题-我想使用嵌套集,但是,我认为用户很难通过控制面板进行可视化和实现。你可以按照自己的意愿呈现数据,并在后台使用嵌套集。就像你的用户不需要为你的应用程序编写SQL查询来支持数据库一样,他们不需要理解嵌套集,您就可以在引擎盖下使用嵌套集。嵌套集的问题在于,数据与向用户表示数据之间存在严重的断开连接。看看这张图-你如何让用户可以编辑这样的内容,从而快速、轻松地生成他们的网站结构?文章顶部有一个“文件夹”图()。这就是邻接集和嵌套集模型所代表的,也是用户会看到的。我稍微澄清了我的问题-我想使用嵌套集,但是我认为用户很难通过控制面板进行可视化和实现。您可以根据自己的需要呈现数据,并在后台使用嵌套集。就像你的用户不需要为你的应用程序编写SQL查询就可以得到数据库支持一样,他们不需要理解嵌套集,您就可以在引擎盖下使用嵌套集。嵌套集的问题在于,数据与向用户表示数据之间存在严重的断开连接。看看这张图-你如何让用户可以编辑这样的内容,从而快速、轻松地生成他们的网站结构?文章顶部有一个“文件夹”图()。这就是邻接集和嵌套集模型所代表的,也是用户所看到的。我认为这不是问题所在。也许标签不是最好的描述方式。类别的功能类似于PC上的文件夹。当您显示类别时,它会显示当前级别下的类别以及其中的任何页面。这很公平,尽管具有正确硬链接的文件系统可以像标记的查找系统一样工作。只是把它扔出去。比如,当你按项目组织时,寻找一个最近的word/image/foo文档,但你忘记了它在哪个项目中。我认为这不是问题所在。也许标签不是最好的描述方式。类别的功能类似于PC上的文件夹。当你显示一个类别时,它会显示当前级别下的类别以及其中的任何页面。这很公平,尽管文件系统 When viewing *pets*: Home When viewing *dogs*: Home -> Pets When viewing *German Shepard*: Home -> Pets -> Dogs