ホームページ >バックエンド開発 >PHPチュートリアル >php: ツリー構造アルゴリズム_PHP チュートリアル

php: ツリー構造アルゴリズム_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:22:27718ブラウズ

製品分類、マルチレベルのツリー構造のフォーラム、メーリングリストなど、多くの場所でこの問題に遭遇するでしょう:マルチレベル構造のデータをどのように保存するか?

PHP アプリケーションでは、バックエンド データ ストレージは通常、大量のデータを保存し、効率的なデータ取得と更新サービスを提供できるリレーショナル データベースです。ただし、リレーショナル データの基本的な形式はフラットな構造である十字テーブルです。リレーショナル データベースに複数レベルのツリー構造を格納したい場合は、適切な変換作業を実行する必要があります。次に、私が見聞きしたことと実際の経験についてお話します。

階層データをフラット データベースに保存するには、基本的に 2 つの一般的な設計方法があります:

隣接リスト モデル

修正されたプリオーダー ツリー トラバーサル アルゴリズム (修正されたプリオーダー ツリー トラバーサル アルゴリズム)

私はコンピューターではありません私は専門家であり、やったことはありませんデータ構造について何かを学んだので、これら 2 つの名前を直訳しました。間違っている場合はアドバイスをお願いします。

この二つは怖く聞こえるかもしれませんが、実はとてもわかりやすいです。ここでは、サンプル データとして単純な食品ディレクトリを使用します。 データ構造は次のようになります:

|

| |---赤

| |

| ---黄色

| |

| --バナナ

|

|---肉

|-牛肉

|

|英語がめちゃくちゃな PHP 愛好家に注意してください

食べ物: 食べ物

フルーツ: フルーツ

赤: 赤

チェリー: チェリー

黄色: 黄色

バナナ: バナナ

肉: 肉

牛肉:牛肉

豚肉: 豚肉

http://www.bkjia.com/PHPjc/446964.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/446964.html

技術記事


この問題は、製品分類、マルチレベルのツリー構造のフォーラム、メーリング リストなどの多くの場所で発生します。マルチレベル構造のデータを保存するにはどうすればよいでしょうか。 PHP アプリケーションでは、バックグラウンド データを提供します...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。