なずブログ

インフラSE、Java開発、リモートワークエンジニアな人のメモ帳

列が可変するテーブルが存在するデータベース設計~アンケート作成ツールの開発~

f:id:nazuna_0124:20170312082946p:plain

自主要件と学校要件で洋服を変えてみるというテスト中


気づいてもらえるかは気にしません。


データベースに触れると作りたくなる選手権で表彰台が狙えそうなツール。

アンケートの作成、集計ツールさんです。


作った人も多いだろうに、どういうわけかスッキリした答えが見つかりません。


最大の難所は質問数が固定じゃないこと。


たぶん、リレーショナルデータベースである意味がない設計

そもそもデータベースを諦めた人も多いんじゃないでしょか。


手元にあると便利かも!ということで着手してみようかと思います。


欲しい(いらない)機能の簡単なまとめ

  • アンケートの質問数は固定じゃない

  • 集計機能もつけてね

  • 選択方法はテキスト入力、ラジオボタン、複数回答可のチェックボックス

  • 結果をCSV出力で欲しい(後でExcelでグラフ化したい)

  • アンケート作成者は特定の人だけ

  • 1を答えた人だけ2を答えるみたいなのは、設問工夫で対処してもよい。


以下はざっくりとした作り方


1.フォルダ分けとテキスト

アンケートをフォルダ単位に分けちゃう。

結果も最初からCSVで格納。

実は作るの簡単。Jscriptの利用でローカル化も簡単


PHP習ったのにこの方法はどうなの?を除けばとても安定

2.最大設問数を規定してテーブルを準備

割りと多いかと思います。

50問もあるアンケートなんてないでしょと大量の列を作ってみたりとか。


使わないカラムがあることにすごいもやもやします。

3.一つの列に全部つっこむ

1セルを1ファイルとして見立てているような使い方。

たぶん、やっちゃだめ

4.全てを行にする。あとで列に変換。

アンケート名 問1 問2 問3 回答者
好きな食べ物 プリン オムライス ハンバーグ なずな

こんな風にするんじゃなくて

アンケート名 答え 回答者
好きな食べ物 1 プリン なずな
好きな食べ物 2 オムライス なずな
好きな食べ物 3 ハンバーグ なずな

こうやって縦に並べる。

あとで横にしちゃおーね、というもの。


行が驚きの長さに!



“” いまのところ 作りやすそうな2でサンプル作成。

4に挑戦してみようかなって思います。