[pgsql-jp: 37441] PostgreSQLの配列の有用な使い方について

Morita Kazuro morita @ yuki.ad.jp
2006年 8月 21日 (月) 23:00:09 JST


森田と申します。オンラインゲームのサーバーなどを運営している者です。
いままで何回か質問させていただき、たいへんお世話になっております。

今回は、PostgreSQLの配列の有用性についてご意見をお聞かせ願いたく質問いたしました。

私は初めて仕事で PostgreSQL を使った時、配列が使えることを知って、物珍しさもあって、思わずあちこち使ってしまったんですが、使って
いるうちに検索がどうやったらいいのかよく分からないなど、後ですごく苦労しました。
たとえばゲームのなかでユーザー間の友達リストを

create table user_data {
 user_id int primary key,
 friend_list int[],
 ...
 ...
);

という感じで使ったんですが、こういう使い方をすると、あるユーザーを friend_list[] に入れているユーザーを検索する方法がよくわかり
ません。
こんな配列なんかつかわないで、普通に

create table friend_list (
 user_id int,
 friend int,
 constraint aaa_pkey primary key (user_id, friend)
);

とやっておけば、select user_id from friend_list where friend=???; ですぐに見つけられるのに。

そういうわけで、今は、その時の反動で配列は全く使っておりません。

しかし、PostgreSQLの特徴の一つとして配列が使えることはよくあげられると思いますので、当然有用な使い方はあるのだと思います。
おそらく上記の例は使い方を間違えたのだと思います。実際の例で配列を利用できてたいへんよかったという例にはどのようなものがあるので
しょうか?




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