私はRavenDbで遊んでいて、ある種のクイズを作成しています。質問にはさまざまな種類があります。-複数選択(A、B、C、またはD?)-日付(何日に...?)-数(いくつ...?)
私が行ったのはQuestion
、ユーザーが指定した文字列としての質問と回答のリストを含むプロパティを使用して、基本クラスの質問を作成することです。
public class Question
{
public string Question { get; set; }
public List<Answer> Answers { get; set; }
}
次に、から継承する複数のサブクラスを作成しましたQuestion
。たとえば、質問ごとにこの違いがあるため、NumberQuestion
にはプロパティMinimumValue
とが含まれます。MaximumValue
ユーザーに答えてもらい、その答えをデータベースに保存してほしい。問題は、答えがDateTime、float、integer(複数選択)などのさまざまなタイプである可能性があることです。私の質問は、回答をRavenDbに保存するための最良の方法は何ですか?
これは私が現在行っていることです:
public class Answer
{
public User User { get; set; }
public string AnswerString { get; set; }
public string AnswerType { get; set; }
}
ここで行うのは、回答を文字列として保存し、タイプ(DateTime、floatなど)も保存することです。これにより、後で解析できるようになります。
動作しますが、あまり好きではありません。別のより良い方法があるはずです。