external_answer_items
概要
外部ツールから取り込んだ設問の選択肢(CS の answer_item)を保管するテーブル。
テーブル定義
| 論理名 | 物理名 | カラム名 | データ型 | 主キー | リレーション | ユニーク | NULL許可 | デフォルト値 | 備考 |
|---|---|---|---|---|---|---|---|---|---|
| 外部選択肢 | external_answer_items | id | uuid | ◯ | gen_random_uuid() | ||||
| external_question_id | uuid | external_questions:id (cascade) | |||||||
| external_id | bigint | CS 側の選択肢 ID。分岐条件から参照される | |||||||
| sentence | text | ◯ | 選択肢の文言 | ||||||
| val | numeric | ◯ | 選択肢に割り当てられた数値 | ||||||
| order_index | integer | ◯ | 設問内での並び順 | ||||||
| raw | jsonb | 選択肢オブジェクトの生 JSON |
リレーション
- external_question_id → external_questions.id (onDelete: cascade)
インデックス
- 主キー (id)
- UNIQUE INDEX: external_answer_items_question_external_id_idx (external_question_id, external_id)
設問タイプ別の意味
CS では設問形式によって answer_item の意味が変わる。
| CS の設問形式 | answer_item の意味 |
|---|---|
| 選択(SA / MA) | 選択肢 |
| テキストマトリクス | 行(列は external_sub_items) |
| テキスト入力(FA) | 入力欄(1 設問内の複数欄がネイティブに表現される) |
| プルダウン | 選択肢。ただし分岐条件では先頭の 1 件を共有し、条件値は文言で判定する |
注記
external_idの負値: FA の分岐条件では、answer_item_idに負値が入ることがある。-1= 「いずれかの回答」、-2= 「すべての回答」を意味する(実際の選択肢を指さない)- CS では
nameとsentenceが同じ値で存在することが実機ログで確認されている。本テーブルではsentenceを採用している rawにはis_shuffle/fix_last/is_pinned(選択肢ランダマイズ関連)、placeholder(FA 欄・プルダウンの選択肢)などのフィールドも保持される