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(列)に対応する