database-design について
スキーマ設計、データベースや ORM の選定、クエリ最適化を支援する開発者向けスキルです。状況とユーザーの希望に基づく判断を重視し、関連資料だけを読む方針です。
主な機能
- 01データベースと ORM の選定指針
- 02スキーマ設計とリレーションの計画
- 03インデックスとクエリ最適化の解説
- 04サーバーレスデータベースを含むマイグレーション指針
- 05コンテンツマップによる選択的な参照
活用シーン
- 01アプリの状況に応じたデータベースと ORM の選定
- 02スキーマのリレーションとインデックスの計画
- 03N+1 クエリやクエリ性能の調査
- 04スキーマ変更とマイグレーションの準備
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ vudovn/ ag-kit --skill database-designインストール後、Claude Code で/database-designを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
database-selection.mdindexing.mdmigrations.mdoptimization.mdorm-selection.mdschema-design.mdscripts/schema_validator.py詳細
データベース設計
SQL のパターンを丸写しするのではなく、考え方を学びましょう。
🎯 選択的読み込みのルール
リクエストに関係するファイルだけを読んでください! コンテンツマップから必要なものを探してください。
| ファイル | 説明 | 読むタイミング |
|---|---|---|
database-selection.md | PostgreSQL vs Neon vs Turso vs SQLite | データベースを選ぶとき |
orm-selection.md | Drizzle vs Prisma vs Kysely | ORM を選ぶとき |
schema-design.md | 正規化、主キー、リレーションシップ | スキーマを設計するとき |
indexing.md | インデックスの種類、複合インデックス | パフォーマンスチューニング |
optimization.md | N+1、EXPLAIN ANALYZE | クエリの最適化 |
migrations.md | 安全なマイグレーション、サーバーレス DB | スキーマを変更するとき |
⚠️ 基本原則
- 要件が不明確な場合は、データベースの希望をユーザーに確認すること
- データベースや ORM は、コンテキストに基づいて選択すること
- すべてに対して PostgreSQL をデフォルトにしないこと
決定チェックリスト
スキーマを設計する前に確認してください:
- ユーザーにデータベースの希望を確認したか?
- 今回のコンテキストに合ったデータベースを選んだか?
- デプロイ環境を考慮したか?
- インデックス戦略を計画したか?
- リレーションシップの種類を定義したか?
アンチパターン
❌ シンプルなアプリに対して PostgreSQL をデフォルトにする(SQLite で十分な場合がある) ❌ インデックスを省略する ❌ 本番環境で SELECT * を使う ❌ 構造化データが適している場合に JSON を保存する ❌ N+1 クエリを無視する
コメント
Markdown 対応