2009-06-11 6 views
0

シナリオ: このオンラインアンケートは、会社のさまざまな部門によって記入されます。質問はデータ駆動型で、部門ごとに異なります。 しかし、質問のいくつかについては、入力の仕方も異なります。いくつかの部門では、ドロップダウンから値を選択し、他のものはフリーテキスト入力を選択することによって、同じ質問に回答するように求められます。もう一度、いくつかの部署では、入力エリアのキャプションを変更します。このキャプションは質問の一部ではありません。今もデータベースから来ていないし、IDはむしろすべてをデータベースに入れておき、選択ごとに結合を増やしてください。そのようなキャプションを持つ20の奇妙な質問のうち、変化するキャプションは3つだけです。質問のためのUIデザインアプローチ

たとえば、

部門A.)

Q.)どうやってここに来たいですか? {キャプション: "ご希望の輸送方法を入力してください"} [フリーテキストボックス]

部門B.)

Q.)どうやってここに来たいですか? {caption: "Select option"} [Drop Down]

このようなウェブベースのquestionairreを以下の方法で設計してコード化するにはどうすればよいでしょうか?

  • は、各部門やショーのためのif-else条件を使用して、それを実装し、部門ごとに入力コントロールを非表示
  • 抽象親クラスにすべての一般的な入力が、自分の具体的な行動が含まれている部門ごとに複数の子クラスを持っていますデータ入力用

その他の方法はありますか?

お時間をいただきありがとうございます。 :)

+0

私はif/elseステートメントと思っていますが、ウェブプログラミングについてはよく分かりません。いくつかの部署がフリーテキストで答える特別な理由はありますか?他にはオプションメニューしかありませんか?あなたが誰かを誰かに動かすことができる方法はありますか?それで、それは部門によって違いはありません。 –

+0

こんにちはジャレッド、私が与えたものは、例題の質問でした。いくつかの部門については、固定された選択肢はなく、ユーザーは必要なものを入力することができます。他のユーザーには選択肢が制限されており、ユーザーはあらかじめ定義されたオプションのみを選択する必要があります。私は答えが取られる方法を変更することはできません:( – user20358

+0

私はif-elseも使うと思っていましたが、近い将来に起こるより多くの順列と組み合わせになると思っています。コードをより読みやすく保守しやすくしてください。 – user20358

答えて

0

if/elseステートメントを使用して、さまざまな質問を表示したり非表示にすることをお勧めします。

サブクラス化ではなくif/elseと言うのは、すべての部署に「共通」だった質問がいくつか特定のものになり、その質問をサブクラスにリファクタリングして適用できない場所で削除します。 if/elseコードは面倒ですが、私が上で言及したリファクタリングより退屈ではありません。

また、アンケートの質問を正規化することを強くお勧めします。言い換えれば、上記の例では、フリーテキストとオプションの2つの異なる質問を作成します。これは回答の入力方法を変更するものではなく、異なる質問をどのように考えるかを変えるだけです。

私が言っている理由は、あなたが回答で行っている分析は、リンゴとリンゴを比較することに依存しているからです。利用可能な選択肢のリストを制限または解放すると、リンゴとオレンジを比較します。

+0

答えがありがたいです データベース構造についてこれは、あまりにも多く使われている読み込み専用ページピーク時に最大500人の同時ユーザーがハードウェアに費やすことのない内部アプリであるため、テーブル数をできるだけ少なくすることに決めました。フリーテキスト/ドロップダウンで受け入れられるフィールドは、分析には含まれません。 – user20358

関連する問題