ブログ移転のお知らせ

独自ドメインのVPSにブログ移転中です、ここもデータの保証無しってことで置きっぱなしにしてもらえる事になってます。
 
i移転先予定のブログURLはこちら(作成中):http://www.sawanoboly.net/wp/
旧ブログはこちらでも保管しときます:http://www.sawanoboly.net/wp_old/
前の記事:«
次の記事: »

簡単なやつ、小規模な社内向けとか。
 

全従業員を対象にアンケートを実施する必要があったとして、その仕組みを考える。
こういう設計は専門外だけど、たまには面白いだろう。突っ込み歓迎。
 
 

記名制ならWEBにフォームをおいてURLを案内、適当に飛ばしてもらえば別にそれでいいんだけど、ちょっと匿名で集めたい場合は色々と工夫が必要だ。
単純に無記名だと誰が提出済みかわからないうえ、同一の人が複数送ってもわからないため未提出の状況を全然把握できない。
 
 

その辺を踏まえて要件を出してみる。
 

要件まとめ

・アンケートは匿名
・内容は誰が出したかわからないように受け取る
・提出は1人1件
・もれなく提出できているかチェックできる
 

こんなシステムならいいのかな。
 
 

仕様・実装を考える

回答はWEBのフォームからやるのが楽そう、それを軸に考えて...
 

提出が1人1件というから、対象のリストは必要だろう。メンバID,名前,メールアドレス くらいかな。
アンケート自体、ステータスの管理をするからマスタがいるなあ、アンケートID,アンケート名 程度あれば。完了フラグがあってもいいかも。
 
 

さて、提出/未提出をメンバーごとに管理という部分が悩ましい。
考えてみた実装は次のような感じ。
 

メンバIDごとに[ランダム文字列]を作成、アンケートURLにその文字列を組み合わせたものがそのユーザ専用のアンケート回答フォーム。
(例:http://アンケートサーバ/enq.cgi?code=[ランダム文字列])
そのURLから回答したら、同じURLは使えない。
 

アンケートを作成したら、対象メンバ毎に固有のURLを記載したメールで案内する、というのでどうだろう。
提出管理のテーブルがいる。 アンケートID,ユーザID,ランダム文字列,提出済みフラグ 、こんなもん?
 
 

そして提出されたアンケートの内容だけど、たとえばこれをDBに順に突っ込んだとすると、回答順から提出者の予測ができたりしてしまう。
これを避けるには、あらかじめアンケート回答の入れ物を作っておき、そこにランダムで突っ込んでいくようにすれば幾分ましだろうか。
少なくとも全員が回答するまでそのテーブルを開かなければ、誰がどの回答をしたかログでも追わない限り分からないはずだ。ここには アンケートID,ストアID,回答内容 が入ればいいかな。
 
 

仕様をまとめる


アンケート用WEBアプリに必要な機能

●アンケート作成機能
・アンケートを作成し、メンバリストの数だけ提出管理リストを作る
・回答用レコードを用意する
・作ったアンケートを実施対象に個別URL付きで送信する
 

●回答受付、提出状況管理機能
・アンケートを受付、ステータスを更新する
・回答済みのURLはブロック
・アンケートストアの作成
・アンケートを適当なところにストア
 
 


DBに必要なテーブルたち


・メールアドレス付き名簿 [メンバID,名前,メールアドレス]
・アンケートのリスト [アンケートID,アンケート名]
・アンケートごとの提出管理 [アンケートID,ユーザID,ランダム文字列,提出済みフラグ]
・アンケート回答の入れ物 [アンケートID,ストアID,回答内容]
 
 

と、このくらいでできるかな?
管理画面とか言い出すとたぶん今は手におえないからこんなもんで、という方が本音かも。まあ作る予定はないのだが。
 
 

しかし下手に結果をDBに突っ込むような仕組みだと複数個所でインジェクションが怖いな、かといってメールだと回答タイミングがもろバレだからイマイチ。。
 
 

最後に、代理提出の抑止や提出内容の暗号化などと、じっくり凝ったややこしい仕組みが必要な場合は、平成19年春期のテクニカルエンジニア情報セキュリティ過去問題午後Iの問4が参考になります。
これはとても面白かった。ランダムにデータをストアとかはこれで紹介されている仕組みの改変版です。

前の記事:«
次の記事: »

この投稿に関連した記事

.
add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0

使ってる所とか

※注意

I
KOBE×
BUSINESS.

これは個人ブログです、内容についてアイクラフト(株)は責任を負いません。
にほんブログ村 IT技術ブログへSawanoblogのフィード
人気ブログランキングへ
この日記のはてなブックマーク数
はてなRSSに追加
Googleに追加
My Yahoo!に追加
livedoor Readerに追加
goo RSSリーダーに追加
フィードメーター - SawanoBlog.
MCP
MCTS
CCNA

ミニブログとか

あわせて読みたいブログパーツ
  • Windows版のVirtualBoxに、Solaris10の10/09は入らんようだ
    画像:Solaris10 10/09 in VirtualBox


    「Aspire One」 充電中…
    写真:「Aspire One」茶色モデル


    Google Public DNS って何がしたいんだろね
    画像:TTL


    Sun VirtualBox 2.2.4 上に WindowsServer2008 をインストールして 「Guest Additions」。いわゆるバーチャルマシン追加機能
    画像:マウス統合後


    アイクラフト、NHKに広告を打つ
    写真:広告を接写?


    アイクラフトの迷惑メールブロックサービス『Inspector(インスペクター)』 の話
    画像:Inspectorの隔離メール一覧画面
  • Amazon用