[pgsql-jp: 33793] 効率的なSQLについて
shima tetuo
mlmlml @ lily.freemail.ne.jp
2004年 8月 4日 (水) 10:58:21 JST
tetuoです。
現在、AとBが繋がって、BがCとDが繋がって、CとEが繋がって、と言うような連
鎖的なネットワークを表現するデータにおいて、Aを起点とした場合、Aは直接的、
間接的に誰と繋がっているかを検索するテーブル構成、SQLを模索しております。
上記例の場合ですと、Aは
A <--> B
B <--> C & D
C <--> E
となるので、B、C、D、Eの何れにも繋がっている事になります。
※このネットワークであればABCDEの何れの起点からでも同じ結果になります。
例:
B はACDEに繋がっている
C はABDEに繋がっている
現在考えているテーブル構成は非常に簡単で、誰が誰と繋がっているかをレコー
ドにしようと考えています。
--------------
table_network
--------------
name | connected_to
下記が上記の例のA起点からのデータとなります。
※BCDEそれぞれの起点用のデータも同じように必要になります。
------
A | B
B | C
B | D
C | E
------
この検索をする場合、まずAが誰に繋がっているかをみて、繋がっていた相手が
誰に繋がっているかをみて、そのまた繋がっている相手の相手をみて・・・と何
度と無くSQLを投げる事になってしまいます。
このようなネットワーク構造を持つデータで、何か効率的な解決方法に心当たり
のある方は、ご連絡頂けると幸いです。
pgsql-jp メーリングリストの案内