2016-02-28 97 views
0

我創建了兩個表,並將其上傳到信任imgur.com向您展示一個例子:分層存儲數據

http://imgur.com/fF3ikCV

//編輯貌似imgur下跌,上傳到另一個站點: http://images.tinypic.pl/i/00761/0ies71okcyxd.png

因爲它是在上面的例子中,你看,那

  • PANTIES
  • 束腰
  • SOCKS
  • PAJAMA

屬於父5,屬於第5類,這意味着於內衣和類屬於父1,這意味着它屬於稱爲第1類衣服。

我讀下面這樣的網站的例子:

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內衣(內褲,束腰,襪子,睡衣)。

我只能顯示例如:

  • PAJAMA

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

,其中9 = PAJAMA

回答

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 

這可以讓你有這樣的層次結構:

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

+0

我知道這篇文章,我喜歡它,但這不是一個完整的答案。我仍然不知道如何顯示所有內衣的路徑*。 –

+0

問題是,你不能在這樣的數據結構上進行無限深度的路徑查詢。您需要更改數據結構以適應任何深度的路徑。然後,您需要執行自連接:SELECT * FROM table_a作爲父連接table_a作爲子對象。 –