読み込み中
豆知識
PostgreSQL (Supabase) のスキーマを Prisma 7 で定義しています。全 224 モデルが、会計・税務・書類・銀行・AI ゲーミフィケーションのドメインに分かれて並んでいます。ここでは「全部読まなくても、どこに何があるか」が分かる地図を出します。
ソースの真実 スキーマの正は
solo-boss-cloud_backend/prisma/schema.prismaです。このページはそこからの抜粋・要約です。Prisma クライアントはバックエンドのリリースのたびに再生成され、API 型は OpenAPI 経由でフロントに伝わります。
flowchart TB
subgraph Users [Users & Companies]
user_profiles
companies
accounting_configs
end
subgraph Documents [Documents & Files]
documents
file_uploads
file_document_links
folders
document_relationships
end
subgraph Bank [Bank & Reconciliation]
bank_accounts[bank_account_settings]
bank_statements
bank_connections
bank_sync_logs
reconciliation_links
end
subgraph Accounting [Accounting & Journals]
accounts
journal_entries
journal_entry_lines
journal_templates
general_ledger_lines
fiscal_periods
end
subgraph Tax [Tax & Compliance]
audit_logs
integrity_check_runs
integrity_violations
transaction_integrity_status
end
subgraph Expenses [Expenses & HR]
expenses
expense_reports
expense_report_items
expense_category_mappings
employees
pay_slips
end
subgraph Gamification [Gamification & Entitlements]
user_gamification_progress
user_achievements
xp_events_log
user_monthly_quota_usage
end
Users --> Documents
Users --> Accounting
Documents --> Accounting
Bank --> Accounting
Accounting --> Tax
Expenses --> Accounting
Users --> Gamification
schema.prisma には 224 モデル が定義されています (npm run check:docs-stats が CI で差分を検出します)。よく触るのは次のとおりです。
| ドメイン | 代表モデル | テーブル数の目安 |
|---|---|---|
| ユーザー・会社 | user_profiles, companies, accounting_configs, user_recovery_codes |
6 |
| 書類・ファイル | documents, file_uploads, file_document_links, folders, document_relationships |
8 |
| 銀行・消込 | bank_account_settings, bank_statements, bank_connections, reconciliation_links |
8 |
| 仕訳・会計 | accounts, journal_entries, journal_entry_lines, general_ledger_lines, fiscal_periods |
7 |
| 税務・整合性 | audit_logs, integrity_check_runs, integrity_violations, withholding_taxes |
8 |
| 経費・給与 | expenses, expense_reports, pay_slips, pay_slip_items, employees |
12 |
| 通知・リマインダー | notifications, push_notifications, reminders, reminder_configs |
7 |
| AI / ゲーミフィケーション | ai_configs, user_gamification_progress, xp_events_log, user_monthly_quota_usage |
10 |
| 取引先・契約 | client, contract, client_usage_tokens |
5 |
| デモ・試算用 | lp_demo_attempts, simulation_* (動的) |
5 |
journal_entries の debit_total = credit_total をデータベーストリガで強制fiscal_periods.is_locked = true の期間に対する仕訳挿入を拒否documents.is_locked = true の書類は変更履歴付きでしか変更できないidempotency_keys テーブルでバッチ仕訳・請求書発行の重複を防ぐintegrity_check_runs を生成し、integrity_violations に違反を記録Supabase の Row-Level Security を全テーブルで有効化し、company_id のマッチで原則的な分離を実現しています。
user_profiles → companies のジョインで権限を計算company_id を渡す方針詳細な権限マトリクスは RBAC 権限マトリクス を読んでください。
snake_caseid (UUID v4)<table>_id 形式created_at updated_at をほぼ全テーブルが持つgen_* プレフィックスAPI 上では camelCase に自動変換されます。ケース変換の詳細は 命名規則 を見てください。
npx prisma migrate dev --name <change>)prisma/migrations/<timestamp>_<name>/migration.sql に履歴管理npx prisma migrate deploy(バックエンドの AWS main デプロイ workflow で自動実行。フロントの Vite ビルドには含まれない)それぞれの書類タイプ (請求書・経費・給与など) の JSONB コンテンツ構造は 書類コンテンツスキーマ を、ER 図と主要エンティティの関係は スキーマ概要 を読んでください。
読み込み中
豆知識