コンテンツにスキップ

survey_version_question_branch_conditions

概要

分岐ルールに属する条件を管理するテーブル。「どの設問の回答が、どういう状態のときに成立するか」を表す。

テーブル定義

論理名 物理名 カラム名 データ型 主キー リレーション ユニーク NULL許可 デフォルト値 備考
分岐条件 survey_version_question_branch_conditions id uuid ◯ gen_random_uuid()
branch_rule_id uuid survey_version_question_branch_rules:id (cascade)
source_question_code varchar(100) 参照元の設問コード。intro 設問は指定できない
operator branch_operator 条件演算子
comparison_value text 比較値。選択肢ラベル / マトリクスの行ラベル / FA の照合テキスト
sub_comparison_value text ◯ マトリクスの列ラベル / FA の対象欄ラベル。null = いずれかの欄
sub_question_index integer ◯ SA / MA のサブ設問インデックス。null = 全サブ設問をフラット扱い
sort_order integer ルール内での並び順
created_at timestamptz now()

リレーション

  • branch_rule_id → survey_version_question_branch_rules.id (onDelete: cascade)

インデックス

  • 主キー (id)
  • UNIQUE INDEX: branch_conditions_rule_order_idx (branch_rule_id, sort_order)

条件演算子

値 UI ラベル 主な対象 説明
equals が該当 SA 指定した選択肢が選ばれている
includes を含む MA / TM / PD / FA 指定した選択肢を含む。FA では入力テキストの部分一致
not_includes を含まない MA / TM / PD / FA 指定した選択肢を含まない。未回答も成立する
only だけである MA / TM 指定した選択肢だけが選ばれている
not_only だけではない MA / TM 指定した選択肢以外も選ばれている(未回答も成立)
has_other 以外にある MA / TM 指定した選択肢以外が選ばれている
answered に回答 FA 何らかの入力がある

対象別の値の入れ方

対象 comparison_value sub_comparison_value sub_question_index
SA / MA / PD 選択肢ラベル — サブ設問がある場合はその位置
TM(マトリクス) 行ラベル 列ラベル —
FA 照合テキスト 対象欄のラベル(null = いずれかの欄) —

注記

  • ID ではなくラベルで参照する理由: 選択肢は設問の更新のたびに作り直されて id が変わるため、安定して参照できるラベル文字列を比較値に使う
  • CS の verb との対応: equals / includes → 0、not_includes → 1、only → 2、has_other → 3、not_only → 4。answered は verb 3 + 比較値 "" として変換する
  • 未回答の扱い: not_includes と not_only は未回答でも成立する。これは CS の「を含まない」「だけではない」の定義に合わせたもの
  • マトリクスの条件は行 × 列のセル単位で指定する。CS の answer_item_id(行)+ sub_item_id(列)に対応する