• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:階層構造データの効率的な検索)

階層構造データの効率的な検索方法とは?

このQ&Aのポイント
  • 階層構造データを効率的に検索する方法について探しています。現在は10回のSQLを発行しているため、パフォーマンスが低下しています。
  • PostgreSQL8.2やMySQL5を使用しているアプリケーションで、階層構造データを1回のSQLで検索する方法を知りたいです。
  • 階層構造データを含む部品や製品の構成を効率的に取得する方法をご教示いただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

PostgreSQLでは、Oracleに似た「階層問い合わせ」という機能が、標準搭載ではないですが、実装されています。 http://www.thinkit.co.jp/free/marugoto/2/1/23/1.html MySQLでは、まだこの辺の機能は実装されていません。階層を制限した形で実装するとか、ストアドプロシジャで作りこむといった対処になると思います。 標準SQLでは、SQL99で「再帰クエリ」(with句を使用)が規定されており、MySQLでも将来的には実装するのではないかと思います。

annyG
質問者

お礼

ありがとうございます。 まったく予想外のご回答だったのでちょっと驚いてしまいました。そんなのがあるのですね。 しかし、このような機能が追加されなければならない、ということはやはり簡単には、少なくともSQL一発で実現するのは難しいか無理、ということでしょうか。 現在はJavaのメソッドを再帰で呼んで実現しているのですが、これだと「在庫が50以下」というような条件があったときでも、それを素直にwhereに書くと、親部品の在庫が50以上あると引っかからず、その部品の子どもに検索にいかなくなってしまうので、条件がつけられないんですよね。。。 とても勉強になりました。ありがとうございました。

annyG
質問者

補足

お礼に書き忘れましたが、顧客に尋ねたところ、標準搭載ではない機能を使うのはサポートの点で難しい、とのことでした。 一応補足です。

関連するQ&A