ホームページ >データベース >mysql チュートリアル >データベース スキーマは調査システムの条件付き質問をどのように効果的に処理できるでしょうか?

データベース スキーマは調査システムの条件付き質問をどのように効果的に処理できるでしょうか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-06 15:43:47628ブラウズ

How Can a Database Schema Effectively Handle Conditional Questions in a Survey System?

調査システムの条件付き質問のデータベース スキーマ

調査、質問、回答、および可能な回答のテーブルで構成される、提供されたデータベース スキーマ、シンプルな調査システムのニーズに対応します。ただし、条件付き質問を組み込むには、追加の考慮事項が必要です。

条件付きロジックの紹介

条件付き質問をサポートする鍵は、データセットをリンクして質問間の関係を特定することにあります。そしてそれぞれの答え。追加のテーブル QuestionDependency を導入して、これらの依存関係を定義できます。

QuestionDependency テーブル

QuestionDependency テーブルは、特定の質問を表示するための前提条件を確立します。 。これには次の列が含まれます:

  • DependentQuestionID: 前の回答に依存する質問の ID。
  • PrerequisiteQuestionID: ID回答によって依存関係の表示がトリガーされる質問のquestion.
  • PrerequisiteAnswerID: 依存する質問が表示されるかどうかを決定する前提条件の質問に対する特定の回答の ID。

例:

「あなたの好きなタバコのブランドは何ですか?」という質問が行われた例を考えてみましょう。 (質問 B) は、「タバコを買いますか?」に「はい」と答えた人にのみ表示されます。 (質問A)。 QuestionDependency テーブルには次のエントリがあります:

DependentQuestionID PrerequisiteQuestionID PrerequisiteAnswerID
2 1 1

条件付きロジックのデータベース クエリ

条件付きロジックを実装するには、調査システムは QuestionDependency をクエリする必要があります。テーブルを使用して、ユーザーの以前の回答に基づいてどの質問を表示するかを決定します。これは、次のようなクエリを使用して実現できます。

SELECT QuestionID
FROM Question
WHERE QuestionID NOT IN (
    SELECT DependentQuestionID
    FROM QuestionDependency
    WHERE PrerequisiteQuestionID = 1 AND PrerequisiteAnswerID = 2
)

このクエリは、質問 A に「いいえ」と回答したユーザーから非表示にする質問の質問 ID のリストを返します。

QuestionDependency テーブルを組み込み、適切なデータベース クエリを実装することにより、提案されたスキーマは、調査システムで条件付き質問をサポートする柔軟かつ効果的な方法を提供します。

以上がデータベース スキーマは調査システムの条件付き質問をどのように効果的に処理できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。