C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: アンケートの自動生成


(過去ログ 25 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■11313 / inTopicNo.1)  アンケートの自動生成
  
□投稿者/ 和 (1回)-(2007/12/12(Wed) 07:33:53)

分類:[ASP.NET (C#)] 

こんにちわ。

現在業務にて、アンケートの自動生成ができないかと依頼を受けています。
アンケートページを作るのに毎回システムの方に依頼するのではなく、システムを全く知らない人が管理ツールで作ってしまえないかという要件です。
アンケートといっても、CMSについてくるような単純なラジオボタンでの投票式ではなく、複雑な物です。
https://www.tsutaya.co.jp/tol/enq3/index.pl?enqid=ot_mr_009
例えばこんなページです。(個人情報入力部分は今回は関係ないです)
チェックボックス式
ラジオボタン式
テキスト入力型
リストボックス型。
そういった物の複合式アンケートの自動生成です。
流れ的には、質問を追加する→形式を選ぶ’(ラジオボタン式とか)→複数回答なら個数を決める→それぞれ質問を入力する
これを質問の数だけ追加していくという感じになるかと思います。
ラジオボタンやチェックボックスの答えの数だけ自動生成はまあいいんですが、問題はこれのデータベース側です。
・質問の数は可変。いくつになるかは不明
・質問の形式は可変。複数答えがあったり、一つだけだったり、テキスト入力で文章が答えになったり と様々
これをどうやってテーブルに格納すればいいか思いつきません。
ラジオボタンで統一とかなら簡単にできるんですが、チェックボックスがあると複数回答に対応しなければならない。
文字入力があるとフラグなどではなく文章を保存しなければならない。
何をいくつ使うかわからない。
と全て満たす事が難しいと思っています。
当然アンケートですから、それを吸い上げる機構も必要です。
グラフにしやすいような構造にしなければなりません。
そこもまた頭の痛いところです。
その集計状況がわかる裏画面の作成も含めています。

そこで、こういう複雑なアンケートの自動生成は実現可能なのでしょうか?
恐らく可能か不可能かでいえば可能かと思いますが、問題は現実的に考えてどうなのかです。
もの凄く複雑になり、プログラム作成自体に時間がかかりコストがかさむようでは、アンケートの頻度にもよりますが
毎回アンケートフォームをデザイナとシステム担当者で作った方がいいとなる場合もあると思います。
実際こういうアンケート自動生成を作った事がある・頼まれた事があるがコスト的に見合わないので逐次作る事にした。
そういった事をお聞かせ願えればなと。
もしかしたら自分が未熟なだけで、簡単に実現できるようであれば作った方がいいとなりますし
ここにいらっしゃるような方でも難しいとなれば、可能だけど現実的ではないと説得できるのですが。
引用返信 編集キー/
■11327 / inTopicNo.2)  Re[1]: アンケートの自動生成
□投稿者/ やじゅ (16回)-(2007/12/12(Wed) 12:49:48)
No11313 (和 さん) に返信
> こんにちわ。
>
> 現在業務にて、アンケートの自動生成ができないかと依頼を受けています。
> アンケートページを作るのに毎回システムの方に依頼するのではなく、システムを全く知らない人が管理ツールで作ってしまえないかという要件です。
> アンケートといっても、CMSについてくるような単純なラジオボタンでの投票式ではなく、複雑な物です。
> https://www.tsutaya.co.jp/tol/enq3/index.pl?enqid=ot_mr_009

> ラジオボタンやチェックボックスの答えの数だけ自動生成はまあいいんですが、問題はこれのデータベース側です。
> ・質問の数は可変。いくつになるかは不明
> ・質問の形式は可変。複数答えがあったり、一つだけだったり、テキスト入力で文章が答えになったり と様々
> これをどうやってテーブルに格納すればいいか思いつきません。


下記のアンケートのフォームをDBに構築すると
http://creatorof.dip.jp/emquete/emqueteDetail/19/2/

↓こんな感じ、これをもっと拡張性の高い方式で考えていけば自動生成は出来るでしょう。

質問・回答結果格納用テーブル
ID,SEQ,QUESTION,KAITO
1,1,使用例ですのでご自由に回答ください,2
1,2,ラジオボタンだけでなく、あらゆる質問を自動生成できます。,"2,3"
1,3,ご意見・ご感想・ご要望などありましたらどうぞ,"特になし"

回答フォーム構築用テーブル
ID,SEQ,CTL_GROUP,CTL_TYPE,TITLE,NAME,VALUE,ITEM_ID,SIZE・・・
1,1,1,RADIO,HPにWEBアンケートを設置したい,KAITO1,1
1,1,2,RADIO,アンケートのプログラムソースが知りたい,KAITO1,2
1,1,3,RADIO,その他,KAITO1,3
1,2,1,CHECKBOX,チェックボックス タイプ,KAITO2,1,
1,2,2,CHECKBOX,ラジオボタン タイプ,KAITO2,1,
1,2,3,CHECKBOX,セレクトボックス タイプ,KAITO2,2,
1,2,4,CHECKBOX,テキストフィールド タイプ,KAITO2,3,
1,2,5,CHECKBOX,テキストエリア タイプ,KAITO2,4,
1.3,1,TEXT,,KAITO3,,
引用返信 編集キー/
■11374 / inTopicNo.3)  Re[2]: アンケートの自動生成
□投稿者/ VOW (4回)-(2007/12/12(Wed) 23:46:15)
先に書いておくと、あまり説得力のある言葉やたとえが思いつきません。
話半分、こういう考えもあるんだ。ふーん。くらいで適当に読んでください。

スレ主様の書いてるような要望にはこたえるべきではないと思います。

>システムを全く知らない人が管理ツールで作ってしまえないかという要件です。
これって結局「書いたとおり動く」ではなく、「思ったとおり動く」プログラムを組んでくれ。という要求でしかないと思うのですよ。
で、そんなもの不可能に近いと思うのです。
行き過ぎた汎用性が保守性に直結するとは思えないです。

やじゅさんのレスを例えとして使わしていただきますが、質問・回答結果格納用テーブルのQUESTION列とKAITO列のバイト数は何バイトで定義しておくのでしょうか。
何が入ってもいいように、指定できる最大(oracleなら2K?)で定義するのでしょうか。
とても美しい設計とは言えないと思います。

チェックボックスの文字の部分を、他URLへのリンクにしてくれ!という変更依頼がきたらどうしましょう。
本来であれば、HyperLinkを設定してやれば済むだけなのに根本的なとこから見直しが必要になります。

仕様を変更したいなら、当然の様にプログラムの改造が必要なんだ。という意識をユーザ側に持ってもらうのも必要かと思います。


・・・うん、うまく説明できてませんね。なんとなく言ってる事が伝わっていれば幸いです。

引用返信 編集キー/
■11377 / inTopicNo.4)  Re[3]: アンケートの自動生成
□投稿者/ やじゅ (19回)-(2007/12/13(Thu) 00:59:52)
やじゅ さんの Web サイト
No11374 (VOW さん) に返信
> スレ主様の書いてるような要望にはこたえるべきではないと思います。
>
>> システムを全く知らない人が管理ツールで作ってしまえないかという要件です。
> これって結局「書いたとおり動く」ではなく、「思ったとおり動く」プログラムを組んでくれ。
> という要求でしかないと思うのですよ。
> で、そんなもの不可能に近いと思うのです。
> 行き過ぎた汎用性が保守性に直結するとは思えないです。

一顧客のためだとコスト高になると思います(^^;

ようは技術者魂と、一度自動生成システムを作れば、
他の顧客でも同様に使えるので、今後に営業などで
活かせていくかどうかです。
引用返信 編集キー/
■11431 / inTopicNo.5)  Re[4]: アンケートの自動生成
□投稿者/ 和 (2回)-(2007/12/13(Thu) 17:20:56)
顧客というよりは社内での話なので、直接的な利益は発生しないんですよね。
こういうシステムがあれば頻繁にアンケートを行えて、マーケティングがしやすいというのが理由だそうで。
今だと手作業なので、どうしても作業フローが発生しています。
企画者が提案→作業見積→OKだしたら承認→実作業→反映・テスト→OKだったら適用承認→実施
が、システムだと相手の作業が必要ないので
企画者が提案→OKなら承認→企画者自身がツールで作成・テスト→OKだったら適用承認→実施
この分スピーディーに展開ができるし、プログラマとかの調整も必要ないので気楽にできるという話です。
手作業だとアンケートの度に毎回デザイナとプログラマの手を煩わせる事になりますし。

やじゅさんの書いていただいたテーブルですが、回答が一緒に入ってるんでしょうか?
特に複数回答の場合なんですが、回答欄に2,3,5等と入っていると、抽出がし辛くないでしょうか?
例えば○○という質問で、2を選んだ人の数という抽出をしたい・2と5を一緒に選んだ人だけを抽出したい
という場合、SQLで引っ張れませんよね?
文字列として入っていると特にこういう抽出が難しいかと思います。
答えごとに行が存在すれば、簡単に抽出できますが、それだと他の項目でややこしくなるジレンマが問題なんですよね。
更には質問Aで1を選んだ人が質問Bで3を選んでいる数は?とかになるともうSQLでは不可能くさくなりますよね。
両方が複数回答可だと尚更。
こういう抽出がやりやすいテーブル構造がどうにも考えつかないので、難しいなぁと悩んでいます。
引用返信 編集キー/
■11437 / inTopicNo.6)  Re[5]: アンケートの自動生成
□投稿者/ 特攻隊長まるるう (103回)-(2007/12/13(Thu) 17:53:46)
2007/12/13(Thu) 17:56:05 編集(投稿者)

No11431 (和 さん) に返信
> 答えごとに行が存在すれば、簡単に抽出できますが、それだと他の項目でややこしくなるジレンマが問題なんですよね。
質問・回答結果格納用テーブルのほうは、アンケート毎に列数を変えるように
して、Create Table していけばいいのでは?
回答者一人の回答を1レコードとして質問数にあわせてフィールド数は
動的に決定して。

>回答欄に2,3,5等と入っていると
ビット演算でw
引用返信 編集キー/
■11438 / inTopicNo.7)  Re[5]: アンケートの自動生成
□投稿者/ Mr.T (145回)-(2007/12/13(Thu) 17:55:02)
Mr.Tです、こんにちは。

> やじゅさんの書いていただいたテーブルですが、回答が一緒に入ってるんでしょうか?
> 特に複数回答の場合なんですが、回答欄に2,3,5等と入っていると、抽出がし辛くないでしょうか?
> 例えば○○という質問で、2を選んだ人の数という抽出をしたい・2と5を一緒に選んだ人だけを抽出したい
> という場合、SQLで引っ張れませんよね?
> 文字列として入っていると特にこういう抽出が難しいかと思います。
> 答えごとに行が存在すれば、簡単に抽出できますが、それだと他の項目でややこしくなるジレンマが問題なんですよね。

この程度であれば、回答テーブルに対しての子テーブルを持てばよさそうな気がします。
回答テーブルには、親キーを外部キーとしてもち、子テーブルには親キーと子キーをもたせるようにすれば、
行ごとに回答をもてるでしょう。

> 更には質問Aで1を選んだ人が質問Bで3を選んでいる数は?とかになるともうSQLでは不可能くさくなりますよね。
> 両方が複数回答可だと尚更。
> こういう抽出がやりやすいテーブル構造がどうにも考えつかないので、難しいなぁと悩んでいます。

漠然と考えていても、こういうのはいつまでたっても答えは降りてきません。
自由度が高いとはいえ、ある程度の質問のパターンというのがあるはずです。
それの組み合わせを一度、すべて網羅してみる必要があるでしょう。

その際には、行として取り出したいのか、列として認識したいのか、という点についても
出力パターンとして網羅しておく必要があるでしょう。

それらの組み合わせを網羅してから、どこが共通として利用できるか、できないかを
判断していけばよいと思います。
まずは大きなテーブルに持ちたいデータを全て詰め込んでみて、そこから分割していくような
形で考えてみては?


引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -