アンケートのDB設計で質問です。(DBはMySQLです。)


以下のようなアンケートのフォームのDBテーブル構造を教えてください。

質問1. すきな方はどなたですか
○芸能人部門
         興味はある 結婚する人       
綾瀬はるか    
北川景子     
大久保佳代子
井川遥            ○
堀北真希     ○

○キャラクター部門
         興味はある 結婚するなら      
ドラえもん    ○
ふなっしー

※○は実際データとしてチェックしたものとします

ーーーー次ページへーーーー

質問2. 質問1での回答を元に質問です
それぞれの内容について回答ください。
                  井川遥   堀北真希  ドラえもん      
性格はいいと思いますか       思う    思う    思う
頭はいいと思いますか        思わない  思わない  思う
音楽が得意と思いますか       たぶんそう たぶんそう 思わない

※思う、多分そう思う、思わないは選択ボックスで選んだ値になります。

続きは補足に書きます。よろしくお願いします

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2015/01/21 23:40:17
  • 終了:2015/01/26 09:16:31
id:yayayai

質問3 今年の大河ドラマの最終回の視聴率を予測してください。

           30%代   20%代     10%代
予想視聴率                      ○



質問4 最後に、好きな歌手を入力してください
[ ]




※誰が登録したかを表すためにユーザー名は残す必要があります。

ベストアンサー

id:pogpi No.1

pogpi回答回数357ベストアンサー獲得回数462015/01/22 05:56:34

ポイント300pt

user(id int,name varchar(200)),
target(id int,name varchar(200)),
shitsumon1(userid int,targetid int,check int),
shitsumon2(userid int,targetid, int,seikaku int,atama int,ongaku int),
shitsumon3(userid int,shichouritsu int),
shitsumon4(userid int,kasyu varchar(1000))

で、どうですか。外部キー制約も、付けるといいですね。

他3件のコメントを見る
id:yayayai

ありがとうございます!!
質問2のテーブルですが、こちらを表示時にどんな処理して表を組み立てますか?

2015/01/22 08:32:17
id:pogpi

shitsumon1に、選んだターゲットが入っているので、useridがuserのidに一致するtargetのnameを取得ですね。
SELECT name FROM target WHERE id IN (SELECT targetid FROM shitsumon1 WHERE userid = [ユーザーID])
とかですね。

2015/01/22 15:17:20

その他の回答(0件)

id:yayayai

質問文を編集しました。詳細はこちら

id:pogpi No.1

pogpi回答回数357ベストアンサー獲得回数462015/01/22 05:56:34ここでベストアンサー

ポイント300pt

user(id int,name varchar(200)),
target(id int,name varchar(200)),
shitsumon1(userid int,targetid int,check int),
shitsumon2(userid int,targetid, int,seikaku int,atama int,ongaku int),
shitsumon3(userid int,shichouritsu int),
shitsumon4(userid int,kasyu varchar(1000))

で、どうですか。外部キー制約も、付けるといいですね。

他3件のコメントを見る
id:yayayai

ありがとうございます!!
質問2のテーブルですが、こちらを表示時にどんな処理して表を組み立てますか?

2015/01/22 08:32:17
id:pogpi

shitsumon1に、選んだターゲットが入っているので、useridがuserのidに一致するtargetのnameを取得ですね。
SELECT name FROM target WHERE id IN (SELECT targetid FROM shitsumon1 WHERE userid = [ユーザーID])
とかですね。

2015/01/22 15:17:20

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません