製品分類、マルチレベルのツリー構造のフォーラム、メーリングリストなど、多くの場所でこの問題に遭遇するでしょう:マルチレベル構造のデータをどのように保存するか?
PHP アプリケーションでは、バックエンド データ ストレージは通常、大量のデータを保存し、効率的なデータ取得と更新サービスを提供できるリレーショナル データベースです。ただし、リレーショナル データの基本的な形式はフラットな構造である十字テーブルです。リレーショナル データベースに複数レベルのツリー構造を格納したい場合は、適切な変換作業を実行する必要があります。次に、私が見聞きしたことと実際の経験についてお話します。
階層データをフラット データベースに保存するには、基本的に 2 つの一般的な設計方法があります:
隣接リスト モデル
修正されたプリオーダー ツリー トラバーサル アルゴリズム (修正されたプリオーダー ツリー トラバーサル アルゴリズム)
私はコンピューターではありません私は専門家であり、やったことはありませんデータ構造について何かを学んだので、これら 2 つの名前を直訳しました。間違っている場合はアドバイスをお願いします。
この二つは怖く聞こえるかもしれませんが、実はとてもわかりやすいです。ここでは、サンプル データとして単純な食品ディレクトリを使用します。 データ構造は次のようになります:
|| |---赤| || ---黄色
| |
| --バナナ
|
|---肉
|-牛肉
|
|英語がめちゃくちゃな PHP 愛好家に注意してください
食べ物: 食べ物
フルーツ: フルーツ
赤: 赤
チェリー: チェリー
黄色: 黄色
バナナ: バナナ
肉: 肉
牛肉:牛肉
豚肉: 豚肉
http://www.bkjia.com/PHPjc/446964.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/446964.html
技術記事