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.rs の Model は、上記テーブルを次の型で表現します。
| フィールド | 型 |
|---|---|
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 には databasechangelog と databasechangeloglock も生成されています。
これらは Liquibase 自身が変更適用状態を管理するためのテーブルで、アプリケーション業務ロジックから直接扱う前提ではありません。
注意点
- スキーマに問い合わせの更新・削除を支える列や状態管理列はまだありません。
usersテーブルは存在する一方で、認証・認可の事実上の正本は 認証 の Cognito 側です。- SeaORM エンティティは自動生成物なので、
src/entity/配下を手で編集せず、SQL 変更後に workflow で再生成する前提です。