首頁 >資料庫 >mysql教程 >資料庫模式如何有效處理調查系統中的條件問題?

資料庫模式如何有效處理調查系統中的條件問題?

Barbara Streisand
Barbara Streisand原創
2025-01-06 15:43:47630瀏覽

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

調查系統中條件問題的資料庫架構

提供的資料庫架構,由調查表、問題表、答案表和可能答案表組成,滿足了簡單調查系統的需求。然而,要合併條件問題,需要額外考慮。

條件邏輯簡介

支持條件問題的關鍵在於連結資料集以識別問題之間的關係以及他們各自的答案。可以引入一個附加表 QuestionDependency 來定義這些依賴關係。

QuestionDependency 表

QuestionDependency 表建立了顯示某些問題的先決條件。它包括以下列:

  • DependentQuestionID:依賴先前答案的問題的 ID。
  • PrecessionQuestionID:ID問題的答案觸發依賴項的顯示問題。
  • PrecessionAnswerID:先決條件問題的具體答案 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn