Use Cases

Claude Codeでデータベース設計を効率化する7つの実践テクニック

ER図の設計からスキーマ生成、マイグレーション、インデックス最適化まで。Claude Codeをデータベース設計のパートナーにする方法を7つ紹介します。

データベース設計は、テーブル構造、リレーション、インデックス、マイグレーションと考慮すべきことが多い領域です。Claude Code を活用すれば、設計の壁打ちから実装まで一気に進められます

1. 要件からテーブル設計を生成

自然言語で要件を伝えるだけで、テーブル設計が返ってきます。

claude -p "
ECサイトのデータベースを設計してください。

要件:
- ユーザー(メール、パスワードハッシュ、プロフィール)
- 商品(名前、説明、価格、在庫数、カテゴリ)
- 注文(ユーザーと商品の紐付け、数量、ステータス)
- レビュー(ユーザーが商品にレビューを投稿)
- カテゴリ(階層構造あり)

Prisma スキーマで出力してください。
適切なインデックスも含めてください。
"

数秒で、正規化されたスキーマが返ってきます。

2. 既存DBのスキーマを分析する

レガシーなデータベースの構造を理解するのにも使えます。

npx prisma db pull
claude -p "
prisma/schema.prisma を読んで、このデータベースの構造を解説してください。

以下を含めてください:
- 主要なテーブルとその役割
- テーブル間のリレーション
- 設計上の問題点(正規化の不足、インデックスの欠如など)
- 改善提案
"

3. マイグレーションを自動生成

スキーマ変更時のマイグレーションファイルも Claude Code に任せられます。

claude -p "
usersテーブルに以下のカラムを追加するマイグレーションを作成してください:
- phone_number (文字列、NULL許可、ユニーク)
- avatar_url (文字列、NULL許可)
- last_login_at (日時、NULL許可)

Prisma スキーマを更新して、npx prisma migrate dev を実行してください。
マイグレーション名は add-user-profile-fields にしてください。
"

スキーマ変更からマイグレーション実行まで一気通貫で完了します。DB マイグレーション自動化 も参照。

4. インデックス最適化

遅いクエリを特定して、適切なインデックスを提案させます。

claude -p "
prisma/schema.prisma を読んで、以下の観点でインデックスを最適化してください:

1. WHERE句で頻繁に使われるカラムにインデックスがあるか
2. JOIN条件に使われるカラムにインデックスがあるか
3. ORDER BY で使われるカラムの複合インデックス
4. 不要なインデックス(使われていないもの)

改善後のスキーマを出力してください。
"

SQL クエリ最適化 も参考になります。

5. シードデータを自動生成

開発用のテストデータを自動生成します。

claude -p "
prisma/seed.ts を作成してください。

要件:
- ユーザー10人(リアルな日本語の名前とメール)
- カテゴリ5つ(家電、書籍、食品、衣類、スポーツ)
- 各カテゴリに商品10個ずつ(リアルな商品名と価格)
- 各ユーザーが3〜5件の注文
- 各商品に1〜3件のレビュー

faker.js を使ってランダムに生成してください。
package.json の prisma.seed も設定してください。
"

6. クエリビルダーを生成

よく使うクエリのヘルパー関数を自動生成します。

claude -p "
src/repositories/ に以下のリポジトリクラスを作成してください:

ProductRepository:
- findAll(filters, pagination, sort)
- findById(id) - 関連カテゴリとレビューもinclude
- search(keyword) - 全文検索
- findByCategory(categoryId, pagination)
- getPopular(limit) - レビュー数順

各メソッドにPrisma を使った実装を書いてください。
N+1クエリにならないよう注意してください。
"

7. ER図を自動生成

テキストベースのER図も生成できます。

claude -p "
prisma/schema.prisma を読んで、Mermaid 形式のER図を生成してください。
テーブル間のリレーション(1:N、N:N)を矢印で表現してください。
"

出力例:

erDiagram
    User ||--o{ Order : places
    User ||--o{ Review : writes
    Order ||--|{ OrderItem : contains
    Product ||--o{ OrderItem : "ordered in"
    Product ||--o{ Review : receives
    Category ||--o{ Product : categorizes

ハマりどころ

正規化しすぎない

Claude Code は正規化を徹底する傾向があります。実務では、パフォーマンスのために意図的に非正規化することもあるので、「このテーブルはあえて非正規化しています」とCLAUDE.md に明記しましょう。

マイグレーションは必ずレビュー

自動生成されたマイグレーションは、必ず人間がレビューしてから実行してください。特にデータ削除を伴う変更は要注意です。

本番DBに直接接続しない

Claude Code に DATABASE_URL を渡す場合、本番DBではなくローカルまたはステージング環境を使いましょう。CLAUDE.md で「本番DBへの接続禁止」と明記するのがベスト。

まとめ

  • 要件からテーブル設計を自動生成
  • レガシーDBの構造分析と改善提案
  • マイグレーションをスキーマ変更から実行まで自動化
  • インデックスの最適化提案
  • シードデータの自動生成
  • リポジトリパターンのクエリヘルパー生成
  • ER図をMermaid形式で出力

Claude Code をDB設計のパートナーにすると、設計品質と開発速度が同時に上がります。Prisma ORM 完全ガイド も参考にしてください。公式ドキュメントは Anthropic Claude Code を参照。

#claude-code #データベース #prisma #sql #設計

Claude Codeをもっと活用しませんか?

実務で使えるプロンプトテンプレート50選。コピペですぐ使えます。

無料プレゼント

無料PDF: Claude Code 5分でわかるチートシート

メールアドレスを登録するだけで、A4 1枚のチートシートPDFを今すぐお送りします。

個人情報は厳重に管理し、スパムは送りません。

Masa

この記事を書いた人

Masa

現役DX室長|Claude Code でゼロから多言語AI技術メディア運営中。実務直結の自動化、AI開発相談・研修受付中。

PR

関連書籍・参考図書

この記事のテーマに関連する書籍を楽天ブックスで探せます。

※ 当サイトは楽天市場のアフィリエイトプログラムに参加しています。上記リンクから商品をご購入いただくと、運営者に紹介料が支払われる場合があります。