external_questions
概要
外部ツールから取り込んだ調査票に属する設問を保管するテーブル。
テーブル定義
| 論理名 | 物理名 | カラム名 | データ型 | 主キー | リレーション | ユニーク | NULL許可 | デフォルト値 | 備考 |
|---|---|---|---|---|---|---|---|---|---|
| 外部設問 | external_questions | id | uuid | ◯ | gen_random_uuid() | ||||
| external_survey_id | uuid | external_surveys:id (cascade) | |||||||
| external_id | bigint | CS 側の設問 ID | |||||||
| answer_type | integer | ◯ | CS の設問形式コード | ||||||
| answer_type_name | varchar(100) | ◯ | 設問形式の表示名。「提示ステップ」がセクションの区切りになる | ||||||
| rendered_sentence | text | ◯ | 描画済みの設問文 | ||||||
| order_index | integer | ◯ | 調査票内での並び順 | ||||||
| any_logic | boolean | false | 分岐ロジックが設定されているか | ||||||
| any_visibility | boolean | false | 表示ロジックが設定されているか | ||||||
| raw | jsonb | 設問オブジェクトの生 JSON |
リレーション
- external_survey_id → external_surveys.id (onDelete: cascade)
- 参照される側:
external_answer_items.external_question_id(cascade) - 参照される側:
external_sub_items.external_question_id(cascade) - 参照される側:
external_logics.external_question_id(cascade) - 参照される側:
question_library_items.source_external_question_id(cascade)
インデックス
- 主キー (id)
- UNIQUE INDEX: external_questions_survey_external_id_idx (external_survey_id, external_id)
CS の answer_type
拡張の変換で使用している主な対応。
| answer_type | 意味 | 設計ツールの設問タイプ |
|---|---|---|
| 2 | 選択(SA / MA) | single / multi |
| 5 | テキスト入力 | free_text |
| 11 | テキストマトリクス | matrix |
| 14 | 提示ステップ | intro |
| 18 | サバイバルテキスト | 対象外 |
| 21 | プルダウン | pulldown |
| 22 | 最終ステップ | intro(コンプリート / スクリーンアウト) |
注記
- セクション候補の分割: CS にはセクション(大問)の概念がないため、
answer_type_nameが提示ステップの設問を区切りとしてセクション候補に分割する - 最終ステップの区別:
answer_type22 の設問は、コンプリートとスクリーンアウトを区別するフラグを持たない。位置で意味が決まる(最後の設問の直後 = コンプリート、調査票の最後尾 = スクリーンアウト) any_logic/any_visibilityは分岐・表示ロジックの有無を示すフラグ。取り込み後の解析対象を絞り込むのに使える