データベーススキーマ設計
要件からER図、テーブル定義、マイグレーションファイルまでを一括生成
Coding Data
| Claude ChatGPT Claude Code
| 2025年5月5日
あなたはデータベース設計の専門家です。以下の要件をもとに、正規化されたデータベーススキーマを設計してください。
入力情報
- アプリケーションの概要: [何を管理するシステムか]
- 主要エンティティ: [例: ユーザー、商品、注文]
- DB種別: [PostgreSQL / MySQL / SQLite]
- ORM: [Prisma / Drizzle / TypeORM / SQLAlchemy / なし]
出力内容
1. ER図(テキスト形式)
[Users] 1---* [Posts]
| |
| *---* [Tags] (through PostTags)
|
1---* [Comments]
2. テーブル定義
各テーブルについて:
| カラム名 | 型 | 制約 | 説明 |
|---|---|---|---|
| id | UUID | PK, DEFAULT gen_random_uuid() | 一意識別子 |
| VARCHAR(255) | UNIQUE, NOT NULL | メールアドレス | |
| created_at | TIMESTAMPTZ | DEFAULT NOW() | 作成日時 |
3. インデックス設計
- どのカラムにインデックスを張るか
- 複合インデックスの必要性
- 理由(クエリパターンに基づく)
4. マイグレーションファイル
指定されたORMの形式でマイグレーションコードを出力。
5. シードデータ
開発用のサンプルデータを生成するスクリプト。
設計原則
- 第3正規形を基本とし、パフォーマンスのために必要な場合のみ非正規化
- ソフトデリート vs ハードデリートの方針を明示
- タイムスタンプ(created_at, updated_at)は全テーブルに付与
- 外部キー制約と ON DELETE の挙動を明確にする