コンテンツにスキップ

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 欄・プルダウンの選択肢)などのフィールドも保持される