2011-06-28 9 views
0

私は、発達障害者に曜日プログラムを提供する組織のために働いています。毎日の終わりに、労働者は、その日の仕方を記録するために働いていた人のための毎日のログに記入します。この情報はExcelのスプレッドシートに入力され、定期的なレポート(四半期ごと)を行うことができます。このデータをExcelからデータベース駆動型Webサイトに移動したいと思います。私はASP.NetのMVCを使用して(私は行く間学習)しかし、私の質問はより一般的です。変更された質問/回答について、どのパターンを調べるべきですか?

各日単位のログは、各担当者ごとにカスタマイズされています。すべてのプログラムは一意であるため(それぞれの人は現在独自のスプレッドシートを持っています)さらに、ログシート上のフィールド(または質問)は、人のプログラムが変更されると、時間とともに変化する可能性があります。私は現在、ドメイン/オブジェクトモデルにアプローチする方法を決定しようとしています。具体的には、質問/回答のペアの辞書タイプを見ていますが、すべての回答のデータ型は同じではありません。辞書(文字列、オブジェクト)または辞書(文字列、動的)を使用している可能性があると考えています。

とにかく、私はパターンについて学び始めています。私はそこに行く最善の方法かもしれない1つ以上のパターンがあると思います。私は誰かが、あなたが適切かもしれないと感じる特定のパターンに向かって私を指すことができることを望んでいました。事前に

おかげ..

答えて

1

質問は本当に何かを求めてテキストのブロック以外の何ものでもありませんので、私は夫婦ではないだろうと、直接あなたの答えに。答えは「タイプTの」ことができるものであるので、私はジェネリックを使用します。質問エンティティの束を含んで

class Question 
{ 
    String Text { get; set; } 
} 

class Answer<T> 
{ 
    T _Answer; 
    Question QuestionReference { get; set; } 
    T Answer 
    { 
     get { return _Answer; } 
     set { if (value is T) _Answer = value; } 
    } 
} 

データベースは、その後、あなたがのために引き出すためにどのような質問を決定するためにいくつかのビジネス・ロジックを使用することになりますそれぞれの人物を作成し、各質問に対して新しいAnswer<T>を作成します。ここで、Tは回答の戻り値の型です。また、回答タイプにバリデーションを追加することもできます。サブクラスQuestionには、複数の選択肢などの項目をサブクラス化することができます。ここでは、表示する潜在的な回答を知る必要があります。

このタイプのデータを表す方法はたくさんあります。最終的にはあなたに最も快適なものを選んでください。

+0

ここでは、ジェネリックではなく継承を含む同様の質問があります:http://stackoverflow.com/questions/3232363/questions-with-different-types-of-answer-in-nhibernate – drharris

関連する問題