DBスキーマと ORM

inquiries テーブル

001_create_inquiries.sql で作成される、現在の業務データ本体です。

カラム 用途
id UUID 問い合わせ ID。API で UUIDv7 を採番
email VARCHAR(255) 問い合わせ所有者のメールアドレス
subject TEXT 件名
body TEXT 本文
created_at timestamptz 作成日時。既定値は CURRENT_TIMESTAMP

関連インデックス

変更セット 内容 目的
002_create_idx_inquiries_email.sql idx_inquiries_email メールアドレスによる絞り込み高速化
003_create_idx_inquiries_created_at.sql idx_inquiries_created_at 作成日時ソートや時系列参照を補助

ORM 対応

infrastructure/sea_orm/src/entity/inquiries.rsModel は、上記テーブルを次の型で表現します。

フィールド
id Uuid
email String
subject String
body String
created_at DateTimeWithTimeZone

API では Entity as Inquiries を使い、email で絞り込んだうえで created_at 降順に一覧取得しています。

users テーブル

004_create_users.sql で作成される補助テーブルです。

カラム 用途
id UUID ユーザー ID
email VARCHAR(255) メールアドレス
username TEXT 表示名候補
hashed_password TEXT ハッシュ化パスワード
created_at timestamptz 作成日時

infrastructure/sea_orm/src/entity/users.rs に対応するモデルがありますが、現時点のアプリは Cognito を認証基盤としているため、このテーブルをまだ利用していません。

Liquibase 管理テーブル

generate_sea_orm.yaml により、SeaORM には databasechangelogdatabasechangeloglock も生成されています。
これらは Liquibase 自身が変更適用状態を管理するためのテーブルで、アプリケーション業務ロジックから直接扱う前提ではありません。

注意点

  • スキーマに問い合わせの更新・削除を支える列や状態管理列はまだありません。
  • users テーブルは存在する一方で、認証・認可の事実上の正本は 認証 の Cognito 側です。
  • SeaORM エンティティは自動生成物なので、src/entity/ 配下を手で編集せず、SQL 変更後に workflow で再生成する前提です。

関連ページ

results matching ""

    No results matching ""