9

内部で使用するための調査エンジンを構築しています。質問の分岐ロジックをデータベースに保持する方法を知りたいですか? 以前にこれを行った団体や、データベースのスキーマに関するアイデアはありますか?

ユーザーが回答を返す場合、質問に追加されたロジックに基づいて次の質問にスキップする必要があります。各質問には複数のロジックを追加できます。

例:

Question: Is it Sunny, Raining or Cloudy?
Answer: Raining.
The next question should be based on the previous answer.
if(Raining)
{
}

if(Sunny)
{
}

if(Cloudy)
{
}

上記をデータベースに永続化してそこから移動するにはどうすればよいですか?

明るいアイデアはありますか?

4

1 に答える 1

7

基本的に、決定木をデータベースに永続化しようとしています。各質問をノードとして保存し、正規化されたデータベースのために、他の質問に依存する質問 (有向エッジ) に関連する別のテーブルにエッジを保存し、必要に応じて歩きます。

編集: シンプルなデザインは、質問とエッジの 2 つのテーブルにすることができます。質問にはidquestion text. エッジはanswered_question_idnext_question_id、およびanswerです。最初の表は一目瞭然です。2 番目の表は、質問answered_question_idがされ、 と等しいか一致するもので回答された場合、次のanswer質問に進むことを示していますnext_question_id

于 2011-03-11T20:54:51.787 に答える