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 を参照。
無料PDF: Claude Code 5分でわかるチートシート
メールアドレスを登録するだけで、A4 1枚のチートシートPDFを今すぐお送りします。
個人情報は厳重に管理し、スパムは送りません。
この記事を書いた人
Masa
現役DX室長|Claude Code でゼロから多言語AI技術メディア運営中。実務直結の自動化、AI開発相談・研修受付中。
関連書籍・参考図書
この記事のテーマに関連する書籍を楽天ブックスで探せます。
※ 当サイトは楽天市場のアフィリエイトプログラムに参加しています。上記リンクから商品をご購入いただくと、運営者に紹介料が支払われる場合があります。
関連記事
Claude Code × AWS Lambda 完全ガイド|関数生成からデプロイ自動化まで
Claude CodeでAWS Lambda関数を爆速開発。ハンドラー生成・IAMポリシー設計・SAMデプロイ自動化まで、API Gateway/S3/DynamoDB連携の実例コードを完全解説。
Claude Codeで新人エンジニアのオンボーディングを劇的に短縮する実践ガイド
3ヶ月かかる立ち上がり期間が2週間に。Claude Codeを新人の相棒にして、コードベース理解・環境構築・初PRまでを最速化する方法。
Claude Codeで技術的負債を可視化して計画的に削減する方法
放置された技術的負債は事業スピードを奪います。Claude Codeで負債を洗い出し、優先順位付けし、段階的に返済していく実践手順を解説。