P
一覧に戻る

データベーススキーマ設計

要件から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. テーブル定義

各テーブルについて:

カラム名制約説明
idUUIDPK, DEFAULT gen_random_uuid()一意識別子
emailVARCHAR(255)UNIQUE, NOT NULLメールアドレス
created_atTIMESTAMPTZDEFAULT NOW()作成日時

3. インデックス設計

  • どのカラムにインデックスを張るか
  • 複合インデックスの必要性
  • 理由(クエリパターンに基づく)

4. マイグレーションファイル

指定されたORMの形式でマイグレーションコードを出力。

5. シードデータ

開発用のサンプルデータを生成するスクリプト。

設計原則

  • 第3正規形を基本とし、パフォーマンスのために必要な場合のみ非正規化
  • ソフトデリート vs ハードデリートの方針を明示
  • タイムスタンプ(created_at, updated_at)は全テーブルに付与
  • 外部キー制約と ON DELETE の挙動を明確にする