私は、ユーザーがカスタムクイズを定義し、別のユーザーが質問に回答できるようにするこのアプリケーションを作成しています。クイズの各質問には、対応するデータ型があります。すべての質問に対するすべての回答は、[回答]テーブルに垂直に保存されます。現在、応答を保存するために2つのフィールドを使用しています。
//Response schema
ResponseID int
QuizPersonID int
QuestionID int
ChoiceID int //maps to Choice table, used for drop down lists
ChoiceValue varbinary(MAX) //used to store a user entered value
.net 3.5 C#SQLServer2008を使用しています。
同じフィールドに異なるデータ型を格納してから、SQLレポートプロシージャで適切なデータ型に変換したいと考えています。1つのフィールドをチェックするだけなので、これは理想的だと思います。また、それが価値があるよりも厄介かもしれないと思っています。
私の他の選択肢はそうだと思います。データを文字列としてdb(yuck)に格納するか、使用する可能性のある各データ型の列を作成します。
では、SQLで適切に変換できるように、データ型をC#でフォーマットするにはどうすればよいでしょうか。SQLで変換することによるパフォーマンスへの影響は何ですか?データ型ごとに列全体を作成する必要がありますか?