[pgsql-jp: 33801] Re: 効率的なSQL について(

Keiji Mitsubuchi keiji @ nwco.com
2004年 8月 4日 (水) 16:26:39 JST


三淵@NWCです。

回答になっていないかもしれませんが
グループ毎に管理した方が、いいのでは?
友達の定義と、グループの定義にもよりますが
基本的に、連鎖を無限にたどっていくのは、難しいともいます。
ただし、1000〜3000ノードなら
関係は、双方向だと仮定して関係を
500K〜4.5Mで、管理できるので
Cで書くなら、マップドメモリーを
使えれば可能かと・・・。
また、友達の友達 ≠ 友達
だと思うので、コンセプト的にも
少々解りづらいかも・・・

ご参考まで

> >  このテーブルがどの程度のサイズがあるかに寄りますが、私ならまず、
> > テーブル全部をメモリ上に展開して、プログラム上で処理することを考え
> > ると思います。そうしたらSQLは1行ですみますので。。。(^^;
>
> 現在の構想では、既存の登録ユーザーに対して、数珠繋ぎのようなネットワーク
> を作ろうと考えています。
>
> AさんがBさんを友達とする。BさんがC3を友達とする。CさんがDさんを友達とす
> る。
> ※結果的にAさんはDさんの間接的な友達となる。その数を数値等で表示。
> 例:
> Aさんのグループには3人います。
>
>
> ユーザー数は1000〜3000を想定。テーブル構造は1通目のメールに書いたように
> 簡単な物しか現在考えておりませんが、全てを読込み、オンメモリで・・・と言
> うにはかなりコストが高いかも知れません。(該当ユーザーが頻繁にグループ数
> を参照する必要もある為)
>
> 構想の元となっているのは "six degrees of separation" ですので、こちらを
> 一度読んでもらえるとより分かり易いかも知れません。
> http://itpro.nikkeibp.co.jp/free/ITPro/USIT/20030817/1/
>
>
>
>
>




pgsql-jp メーリングリストの案内