[pgsql-jp: 27467] 項目があったりなかったりするテーブル設計について。
yuka_i
inagaki @ root-sea.co.jp
2002年 9月 26日 (木) 13:28:08 JST
はじめまして。伊藤と申します。
ここにははじめて投稿させていただきます。
postgreSQL7.2.2を使用して、Webアプリケーションを制作しています。
テーブル設計で迷っているところがあり、伺いたくメールいたしました。
HTMLのフォームのデータを取り込み、データベースに格納する、
と言う事をしたいのですが、
クライアントがブラウザ上である程度自由に、
フォームの内容を変えることができるようになっています。
クライアントがレイアウトした(内容も含む)フォームを公開し、
クライアントの顧客がそれに答えて送信する。
送信されたデータを取り込む。
こういうことがしたいのです。
そこで、変わったパターンが出てきてテーブルを
どう設計していいかわからず困っています。
Radioボタンが3つあるとします。
1番目と2番目がチェックされるときは問題ないのですが、
3番目をチェックしたときにはさらに、
テキストボックスに入力を求められる事があるのです。
====================================
Q1 あなたのすきな色は?
○あか
○あお
○きいろ
====================================
↑上記の場合は問題ないです。
下記のような場合が問題になります。
====================================
Q2 あなたのすきな食べ物は?
○りんご
○みかん
○その他 ↓下のボックスに入力してください
______________
|______________|
====================================
こんな感じです。
基本的にはチェックして終わりの項目が多いのですが、
「Q2」のような例も少なからず存在するので、
これに対応したテーブル設計をしたいのですが、
すっきりと設計できません。
以下が現状です。
■環境
OS:Turbolinux 7 Server
DBサーバ:postgreSQL
■テーブル
・質問テーブル(質問一つ一つに対するデータが入っています)
・質問選択肢テーブル(質問に回答するための用意されている選択肢)
・回答テーブル(質問に対して選択された値を格納します)
■キー
質問テーブルの主キー(質問ID)に対して、
質問選択肢テーブルにある外部キーがリレーションします。
質問選択肢テーブルにはシーケンスもあり(選択肢No)、
質問IDと選択肢Noで主キーとしています。
■問題
・例外的な選択肢追加を(ある選択肢に対して並行に)
可能にするには質問選択肢テーブルをどう設計すればいいのか。
・回答テーブルに通常なら選択された値をレコードに
格納するだけだが、
ひとつ項目が増える事もイレギュラー的に発生するので、
回答テーブルどう設計するか。
以上2点です。
長くなって申し訳ありません。
ご教授よろしくお願い申し上げます。
pgsql-jp メーリングリストの案内