database-schema-designer について
リレーショナルデータベースを設計・レビューする開発者向けのスキルです。要件から正規化スキーマを作成し、PostgreSQL、MySQL、SQLite向けのマイグレーション、型、セキュリティポリシー、図を生成します。
主な機能
- 01要件から正規化スキーマを設計
- 02マイグレーションとロールバックを生成
- 03クエリパターンに沿ってインデックスを設計
- 04TypeScriptとPythonの型を生成
- 05RLSポリシーとERD図を作成
活用シーン
- 01新機能のテーブル設計
- 02スキーマの正規化と性能のレビュー
- 03マルチテナント分離の計画
- 04マイグレーションやERD文書の生成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ borghei/ claude-skills --skill database-schema-designerインストール後、Claude Code で/database-schema-designerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/best-practices-and-troubleshooting.mdindexes-and-migrations.mdschema-design-and-security.mdscripts/erd_generator.pymigration_diffr.pyschema_validator.py詳細
データベーススキーマ設計
要件に基づいて正規化されたリレーショナルデータベーススキーマを設計し、マイグレーション、TypeScript/Python 型、シードデータ、行レベルセキュリティポリシー、インデックス戦略、ERD 図を生成します。マルチテナント、論理削除、監査証跡、楽観的ロック、多態的関連付け、時間的データのパターンに対応しています。Drizzle、Prisma、TypeORM、Alembic を使用した PostgreSQL、MySQL、SQLite をサポートします。
キーワード
データベーススキーマ、スキーマ設計、正規化、マイグレーション、ERD、行レベルセキュリティ、インデックス作成、マルチテナント、論理削除、監査証跡、Drizzle、Prisma、PostgreSQL
主な機能
- 要件に基づくスキーマ設計 — 自然言語からエンティティと関係を抽出し、1NF~3NF の正規化を適用して、タイムスタンプ/論理削除/監査/バージョン管理を追加し、完全な DDL を生成します。
- マイグレーション計画 — Drizzle、Prisma、TypeORM、Alembic、または生の SQL に対応した、前進およびロールバックのマイグレーション、大規模テーブル向けのゼロダウンタイムパターン、カラムの追加/型変更/バックフィルを扱います。
- インデックス戦略 — クエリパターンに対応する複合、部分、カバリング、GIN/GiST インデックスを選定し、肥大化の検出とメンテナンスを行います。
- 型生成 — DB スキーマから TypeScript インターフェース+Zod スキーマと Python データクラス+Pydantic モデルを生成します(列挙型は文字列のユニオン型として生成します)。
- セキュリティ — マルチテナントの分離に向けた行レベルセキュリティ、カラムレベルの PII 暗号化、変更前/変更後の JSON スナップショットを含む監査ログに対応します。
使用する場面
- 新機能向けのテーブルを設計する
- 既存スキーマの正規化やパフォーマンス上の問題を確認する
- 単一テナントのスキーマにマルチテナントを追加する
- 互換性を損なうスキーママイグレーションを計画する
- サービスの ERD ドキュメントを生成する
まず確認すること
スキーマを設計する前に、以下の入力を確認してください。不足している、または曖昧な入力によって結果が変わる場合は質問し、結果に影響しない場合は妥当なデフォルトを使用して、使用した内容を明記してください。
- 要件または既存の DDL: 自然言語で記述したエンティティ/関係、またはレビュー対象のスキーマ(設計の基となる情報)。
- エンジンと ORM: PostgreSQL/MySQL/SQLite と Drizzle/Prisma/TypeORM/Alembic(マイグレーションと型生成の出力形式を決定します)。
- 横断的な要件: マルチテナント/RLS、論理削除、監査証跡、時間的データ(生成するパターンとポリシーを決定します)。
リスト全体ではなく、この依頼で特に重要な入力を2つか3つ確認してください。ユーザーがすぐに結果を求めている場合は、結果を提示し、冒頭に前提を明記してください。
ツール
| ツール | 用途 | コマンド |
|---|---|---|
erd_generator.py | SQL DDL を解析し、Mermaid ER 図を生成します | python scripts/erd_generator.py schema.sql -o erd.mmd |
migration_diffr.py | 2つの SQL スキーマを比較し、ロールバックを含むマイグレーション用 ALTER 文を生成します | python scripts/migration_diffr.py old.sql new.sql |
schema_validator.py | DDL の正規化違反、インデックスの不足、命名を検証します | python scripts/schema_validator.py schema.sql --strict |
リファレンス
タスクに合ったリファレンスを読み込んでください。このファイルは簡潔に保ち、必要に応じて詳細を参照します。
- references/schema-design-and-security.md — 要件からスキーマを作成する4ステップのプロセス、Drizzle ORM スキーマの完全な例、横断的な考慮事項、PostgreSQL の行レベルセキュリティポリシーを説明します。新しいスキーマを設計する場合や、マルチテナントを追加する場合に参照してください。
- references/indexes-and-migrations.md — インデックスの種類を選択するための枠組み、インデックスのアンチパターン、ゼロダウンタイムのマイグレーションパターン(NOT NULL カラムの追加、カラム名の変更)、Mermaid ERD の生成について説明します。インデックスを選択する場合や、安全なマイグレーションを計画する場合に参照してください。
- references/best-practices-and-troubleshooting.md — よくある落とし穴、ベストプラクティス、トラブルシューティング表、成功基準について説明します。スキーマをリリースする前や、問題を診断する際に参照してください。
対象範囲と制限事項
このスキルの対象:
- 正規化の第3正規形(3NF)までを含む、PostgreSQL、MySQL、SQLite 向けのリレーショナルスキーマ設計
- Drizzle、Prisma、TypeORM、Alembic 向けのマイグレーション生成と、ダウンタイムゼロのマイグレーション計画
- 行レベルセキュリティ(RLS)ポリシー、インデックス戦略、型生成(TypeScript および Python)
- マルチテナンシー、論理削除、監査証跡、楽観的ロック、時系列データなどの横断的なパターン
このスキルの対象外:
- NoSQL またはドキュメントデータベースの設計(MongoDB、DynamoDB、Cassandra)— データストア全般については
senior-data-engineerを参照してください - インデックスの推奨を超えるクエリ最適化や実行計画の分析 — 実行時のプロファイリングについては
performance-profilerを参照してください - データベースインフラのプロビジョニング、レプリケーション、フェイルオーバーの構成 — クラウドデータベースのセットアップについては
senior-cloud-architectを参照してください - アプリケーション層の ORM パターン、接続プーリング、キャッシュ戦略 — バックエンドアーキテクチャの判断については
senior-backendを参照してください
統合ポイント
| スキル | 統合内容 | データフロー |
|---|---|---|
migration-architect | 生成した DDL とマイグレーションファイルを引き渡し、サービス間の順序を調整します | Schema Designer がマイグレーションを生成し、Migration Architect がサービス間のロールアウト順序を調整します |
api-design-reviewer | スキーマエンティティを API リソースモデルとエンドポイント構造に直接対応付けます | スキーマエンティティとリレーションシップを REST/GraphQL のリソース定義と検証ルールに反映します |
senior-backend | 生成された型と ORM スキーマをリポジトリ層およびサービス層に組み込みます | スキーマから生成した TypeScript インターフェースと Pydantic モデルが、バックエンドのデータアクセス契約になります |
performance-profiler | インデックス戦略の推奨事項を、実際のクエリ実行計画に照らして検証します | Schema Designer がインデックスを提案し、Performance Profiler が EXPLAIN ANALYZE のデータを使って有効性を確認します |
senior-secops | RLS ポリシーと列暗号化をセキュリティコンプライアンス要件に合わせます | セキュリティ要件を受け取り、監査検証用の RLS ポリシーと暗号化仕様を出力します |
observability-designer | 監査ログのスキーマを、運用ダッシュボードとアラートの基盤として提供します | 監査ログテーブルの構造を可観測性パイプラインに取り込み、変更追跡と異常検出に活用します |