SQL質問を使用したリレーショナルデータベース内のツリー状データのトラバースに基づいて、物理的意味を考慮してリレーショナルデータベース上でツリー状データを記述するために定期的に使用される方法を知りたいですか?
RDBMSには、通常のSQL ANSIまたは一般的な利用可能な機能以外の特別な機能はないものと想定しています。
疑いの余地なく、私は常にMySQLとPostgreSQL、そして最終的にSQLiteに興味があります。
SQL質問を使用したリレーショナルデータベース内のツリー状データのトラバースに基づいて、物理的意味を考慮してリレーショナルデータベース上でツリー状データを記述するために定期的に使用される方法を知りたいですか?
RDBMSには、通常のSQL ANSIまたは一般的な利用可能な機能以外の特別な機能はないものと想定しています。
疑いの余地なく、私は常にMySQLとPostgreSQL、そして最終的にSQLiteに興味があります。
回答:
彼は二分木のようなものを求めていると思います。同じテーブルの一意のIDに関連付けられた3つのキーを含めるだけです。1つは左、1つは右の子、もう1つは親です。
ie-(非常に多くの擬似コード)
TABLE tree
int id autoinc
varchar(16) data_you_care_about
int parent_id
int left_child_id
int right_child_id
FOREIGN KEY parent_id = tree.id
FOREIGN KEY left_child_id = tree.id
FOREIGN KEY right_child_id = tree.id