コンテンツにスキップ

データモデル

概念モデル図

erDiagram
  カタログ ||--o{ スキーマ : "含む"
  スキーマ ||--o{ 集計ビュー : "含む"
  集計ビュー ||--o{ 質問 : "持つ"
  質問 ||--o{ 選択肢行 : "持つ"
  回答者属性 }o--|| 集計ビュー : "集計元(アプリからは参照しない)"

エンティティ概要

エンティティ名 説明
カタログ Unity Catalog のカタログ。アプリでは cs に固定。
スキーマ カタログ配下のスキーマ。アプリでは cs_dm に固定。
集計ビュー 1 つのアンケートに対応する集計済みビュー。UI で選択する単位。
質問 ビュー内の question(+ question_number / question_type)で識別される設問。
選択肢行 1 設問 1 選択肢に対応する 1 行。回答数 sum_answer、母数 total、比率 rate を持つ。
回答者属性 回答者ごとの属性を持つテーブル(ut_dm_ana_jreslso_tokyo)。集計の元データだが、現状アプリは参照していない。

ビジネスルール

  • アプリが読むのは集計済みビューのみ。生の回答データは扱わない。
  • 集計値の取得クエリはすべて is_comp = 'すべての有効回答' で絞り込む(backend/sql/table_data.py)。属性別の比較軸を出したくなった場合は、ここが唯一の分岐点になる。
  • question_type は Text Select(チャート表示)と Free Text(ヒートマップ + 回答テーブル)の 2 値をフロントエンドが前提にしている。それ以外の値はどちらの画面にも出ない。
  • 質問は question の文字列でグルーピングされる。question_number は表示ラベルとソートに使うだけで、キーではない。
  • カタログ・スキーマは frontend/src/constants/dwh.ts で cs / cs_dm に固定。テーブルのみ UI で選択する。
  • API のレスポンス行モデル QuestionDataRow は extra="allow" なので、テーブル固有の追加列はそのままフロントエンドへ素通しされる。