我正在用 PHP 创建一个基本的购物车,并且想知道,以具有无限子类别的层次结构格式存储和生成类别列表的最佳方法是什么?
目前我加载主要类别,然后foreach
从数据库中获取子类别等等,在大型站点上会创建超过 100 个查询。
那么有什么更好的做事方式呢?
这是我当前的 MySQL 表结构:
cat_id
cat_name
cat_desc
cat_parent_id
status
priority
我的目标是1个查询。
我正在用 PHP 创建一个基本的购物车,并且想知道,以具有无限子类别的层次结构格式存储和生成类别列表的最佳方法是什么?
目前我加载主要类别,然后foreach
从数据库中获取子类别等等,在大型站点上会创建超过 100 个查询。
那么有什么更好的做事方式呢?
这是我当前的 MySQL 表结构:
cat_id
cat_name
cat_desc
cat_parent_id
status
priority
我的目标是1个查询。
Wordpress 在这方面做得很好:
参见:http ://codex.wordpress.org/File:WP3.0-ERD.png和http://codex.wordpress.org/WordPress_Taxonomy
如果你走这条路 这个法典页面有一些问题查询逻辑,用于抓取你可能会发现有用的类别(相关堆栈帖子)
关键是带有类别的表有一个条目,因此您可以让它知道该类别是否具有父类别(允许您将表连接到自身)。
查看这篇文章:类别层次结构(PHP/MySQL)
它使用一个查询从数据库中获取所有类别,然后操作数组以创建子类别。我修改了在 Codeigniter 中使用的答案,效果很好。如果您想使用 Codeigniter,可以在此处发布修改后的代码。