程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP:樹形結構的算法

PHP:樹形結構的算法

編輯:PHP綜合

產品分類,多級的樹狀結構的論壇,郵件列表等許多地方我們都會遇到這樣的問題:如何存儲多級結構的數據?

在PHP的應用中,提供後台數據存儲的通常是關系型數據庫,它能夠保存大量的數據,提供高效的數據檢索和更新服務。然而關系型數據的基本形式是縱橫交錯的表,是一個平面的結構,如果要將多級樹狀結構存儲在關系型數據庫裡就需要進行合理的翻譯工作。接下來我會將自己的所見所聞和一些實用的經驗和大家探討一下。

層級結構的數據保存在平面的數據庫中基本上有兩種常用設計方法:

毗鄰目錄模式(adjacency list model)

預排序遍歷樹算法(modified preorder tree traversal algorithm)

我不是計算機專業的,也沒有學過什麼數據結構的東西,所以這兩個名字都是我自己按照字面的意思翻的,如果說錯了還請多多指教。

  這兩個東西聽著好像很嚇人,其實非常容易理解。這裡我用一個簡單食品目錄作為我們的示例數據。 我們的數據結構是這樣的:

Food

|

|---Fruit

| |

| |---Red

| | |

| | |--Cherry

| |

| |---Yellow

| |

| |--Banana

|

|---Meat

|

|--Beef

|

|--Pork

為了照顧那些英文一塌糊塗的PHP愛好者

Food:食物

Fruit:水果

Red:紅色

Cherry:櫻桃

Yellow:黃色

Banana:香蕉

Meat:肉類

Beef:牛肉

Pork:豬肉

*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved