[pgsql-jp: 29413] Re: 効率的なWeb アプリケーションの為にDB 設計について(長文)

ナガイケイ nagai @ syslabo.co.jp
2003年 3月 14日 (金) 11:57:08 JST


初めて投稿します。
ナガイケイと申します。

Postgresのメーリングリストなので具体的な設計の話とかは
どうなのかなーと、うかがっておりましたがちょうど話題が
あがったので参加させていただきます。

>>きしだです
>>
>>少なくともこのテーブル設計は効率的なWebアプリケーションのためにはあまり
>>よくない、というツッコミはナシですか?
> 
> 
> こういった場合はどのような設計をするのが効率的なのでしょう。

私もテーブル設計には興味があるので「自分なら...」で考えてみました。
まだまだ経験不足なので色々つっこまれたいのが本音です。

memberテーブル
member_id | member_name
----------+------------
A0001     |田中さん
A0002     |山田さん
B0001     |鈴木さん
B0002     |高橋さん
B0003     |佐藤さん
C0001     |斉藤さん

placeテーブル
p_id | p_name
-----+-------
1    |京都
2    |鎌倉
3    |浅草

keiyakuテーブル
keiyaku_id | p_id | g_id
-----------+------+------
20030313001| 1    | g2
20030313002| 3    | g3

の3つはそのままで

t_groupテーブル
g_id |
------
g1   |
g2   |
g3   |


として
新たに「group_memberテーブル」をつくる

group_memberテーブル
g_id  | member_id
------+------------
g1    |A0001
g1    |C0001
g2    |B0002
g2    |C0001
g3    |A0002
g3    |B0003

このようにすれば、g_idに対して複数のmemberを登録できる
のでいいのかも
#絶対に2人だけなら関係ないですね。

あ、でもこれだと

keiyaku_id  | p_name | member_name1 | member_name2
------------+--------+--------------+-----------
20030313001 | 京都   | 鈴木さん     | 斉藤さん
20030313002 | 浅草   | 山田さん     | 佐藤さん

みたいな結果を出力することが出来ないですよね。

#結局、今回の目的にはたどり着いてないです。
#僕もスマートなテーブル設計をしたい。。。





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