[pgsql-jp: 33798] Re: 効率的な嗔�について
Tomoyuki Asakawa
tom @ asakawa.ne.jp
2004年 8月 4日 (水) 15:18:47 JST
あさかわ
> この検索をする場合、まずAが誰に繋がっているかをみて、繋がっていた相手が
> 誰に繋がっているかをみて、そのまた繋がっている相手の相手をみて・・・と何
> 度と無くSQLを投げる事になってしまいます。
そういうデータ構造なので当然だと思う。
SQLの回数が多いのが、非効率かどうかは、その使い方だと思うので
SQLが1回ですむから、全部メモリーに入れるなんてのは、
その為に、全データを読み込まないとならないという、コストとの、トレードオフで決まると思う。
>
> このようなネットワーク構造を持つデータで、何か効率的な解決方法に心当たり
> のある方は、ご連絡頂けると幸いです。
このテーブル構造だけでな、何が効率的なのかなんて言えないと思います。
たぶん、このテーブル以外に、Bとは、どんなものか、Cとはどんな者かという様な
テーブルがあるはずですよね。
仮に、これが、組織構造を表してるとすると
そもそもが、ツリー構造なので、それを表示するなら、SQLを連発しながら、再起的にツリーをたどるしかないでしょう。
構造を表示したいのではなく、要素の一部を検索して、その要素が
どの要素と関連があるのかを検索するなら、先にそれを検索して
下から上に再起的にたどることになるはずです。
ようするにに、効率ってのは、時と場合です。
pgsql-jp メーリングリストの案内