[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 メーリングリストの案内