MySQL数据库,类别树和SELECT查询中的分层存储数据

时间:2016-02-28 21:59:30

标签: mysql database storage categories hierarchical

我创建了两个表并将其上传到受信任的imgur.com,以向您展示一个示例:

http://imgur.com/fF3ikCV

//编辑看起来像imgur已关闭,上传到另一个网站: http://images.tinypic.pl/i/00761/0ies71okcyxd.png

正如上面的例子所示,你看,

  • PANTIES
  • 束腰
  • SOCKS
  • PAJAMA

属于父5,属于类别5,它意味着UNDERWEAR,该类别属于父1,这意味着它属于类别1,称为CLOTHES。

我正在阅读以下网站上的示例:

www.phpro.org/tutorials/Managing-Hierarchical-Data-with-PHP-and-MySQL.html

mysql hierarchy storage with large trees

http://www.slideshare.net/billkarwin/models-for-hierarchical-data

https://www.percona.com/blog/2011/02/14/moving-subtrees-in-closure-table/

https://pragprog.com/book/bksqla/sql-antipatterns

What is the most efficient/elegant way to parse a flat table into a tree?

我仍然无法弄清楚如何显示路径:

  • 所有衣服,
  • ALL UNDERWEAR(PANTIES,CORSET,SOCKS,PAJAMA)。

我只能显示例如:

  • PAJAMA

        SELECT 
            t.path
        FROM 
            thumbnails t
        LEFT JOIN 
            categories c
        ON
            t.category = c.category
        WHERE
            t.category = 9
    

其中9 = PAJAMA

1 个答案:

答案 0 :(得分:1)

这是我最喜欢的在mysql中管理分层数据的方法:

http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

table example:
id     name     lft    rgt
1      clothes  1      10
2      tops     2      3
3      bottoms  4      9
4      pants    5      6
5      shorts   7      8

这允许你有这样的层次结构:

衣服
+ - 上衣
+ - 底部
+ ----裤子
+ ----短裤