gpt4 book ai didi

Mysql,可能的嵌套类别问题

转载 作者:可可西里 更新时间:2023-11-01 07:05:50 24 4
gpt4 key购买 nike

我有一个 mysql 问题。

我有一个要从 Coldfusion 和 MSSql 迁移到 PHP/Mysql 的应用程序。

有类别和子类别(子类别显然是无限的)。

在给定导航 ID 的情况下获取产品表中所有记录的最佳方法是什么。

我正在处理两个表。一个是 Products 表(它有一个 nav_id 对应 --->),另一个是包含父/子关系的类别关系表。

所以基本上我想查询这两个表以生成与 navigationID 相关联的所有产品以及该 NavigationID 的子类别。

有什么想法或方向吗?我知道必须这样做。我以为答案会存在于嵌套查询中,但我无法理解它。

Nav_table - 包含

ChildNavId      int(11)
ParentNavId int(11)

Products_Table - 包含

productNavID    int(11) // productNavID contains the lowest level NavID 

最佳答案

There are categories and sub-categories (with apparently unlimited sub-categories).

如果由此产生任意多层次的类别嵌套,则无法使用“父引用”模式模型通过单个查询获取所有类别。您将不得不以递归方式重复查询您找到的每个类别的子项,或者继续进行越来越长的自连接,直到您找到嵌套最深的项目。

对于分层数据的单一查询访问,您将不得不研究构建模式的替代方法,主要是:

  • Nested Sets : 存储在树上递归遍历的数字顺序
  • Adjacency Relation : 将额外的祖先/后代对添加到您的 child / parent 查找中

这两种方法中的一种或两种都可能适合您。 (我通常以嵌套集结束,这样我也可以获得明确的从头到尾的顺序。)

关于Mysql,可能的嵌套类别问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/679431/

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