ORM Best Practices
概要
Drizzle ORMを活用したデータベース操作のベストプラクティスを提供するスキル。型安全なスキーマ定義、クエリビルダーの効果的な使用、パフォーマンスを考慮した実装パターンを提供します。このスキルはデータベース設計段階から運用まで、ORMの最適な活用方法をガイドします。
詳細な手順や背景は references/basics.md を参照してください。
ワークフロー
Phase 1: スキーマ設計
目的: 型安全なスキーマ定義とリレーション設計
アクション:
references/basics.mdでDrizzle ORM基礎を確認references/schema-definition.mdでテーブル定義パターンを参照references/relation-mapping.mdでリレーション設計を検討
Task: agents/design-schema.md を参照
Phase 2: クエリ実装
目的: パフォーマンスを考慮したクエリ構築
アクション:
references/query-builder-patterns.mdでクエリパターンを確認references/performance-patterns.mdでN+1問題対策を検討- 型安全なクエリビルダーを実装
Task: agents/implement-queries.md を参照
Phase 3: 検証と最適化
目的: スキーマとクエリの品質確保
アクション:
scripts/validate-schema.mjsでスキーマの型安全性を確認- インデックス戦略とクエリ計画を検証
scripts/log_usage.mjsを実行して使用記録を保存
Task: agents/validate-optimize.md を参照
Task仕様(ナビゲーション)
| Task | 起動タイミング | 入力 | 出力 |
|---|---|---|---|
| design-schema | Phase 1開始時 | テーブル要件 | スキーマ定義コード |
| implement-queries | Phase 2開始時 | スキーマ定義 | クエリ実装コード |
| validate-optimize | Phase 3開始時 | 実装済みコード | 検証・最適化レポート |
詳細仕様: 各Taskの詳細は agents/ ディレクトリの対応ファイルを参照
ベストプラクティス
すべきこと
- スキーマ設計: テーブルリレーションと外部キー制約を明確に定義してから実装を開始
- 型安全性: Drizzle ORMの型推論を活用し、TypeScriptの型チェックで実行時エラーを防止
- クエリ設計: クエリビルダーを使用し、手書きSQLではなく型安全なクエリを構築
- パフォーマンス: N+1問題を常に意識し、不要なクエリの重複実行を避ける
- テスト: スキーマ定義とクエリロジックをテストし、リグレッションを防止
- ドキュメント: スキーマの意図、リレーション、パフォーマンスへの配慮をコメントで記録
避けるべきこと
- 手書きSQL: 文字列ベースのSQLではなく、クエリビルダーを使用して型安全性を確保
- スキーマ無視: スキーマ定義を軽視し、後からエンティティマッピングを修正
- 複雑なJOIN: 過度に複雑なJOINはReadability と Maintainability を低下させるため、適切に分割
- キャッシング無視: パフォーマンスクリティカルなクエリにおいてキャッシング戦略を未検討
- マイグレーション無計画: スキーマ変更時にマイグレーション計画を立てず、本番で問題を引き起こす
- インデックス設計無視: 検索や結合に使用するカラムにインデックスを設定しない
リソース参照
references/(詳細知識)
| リソース | パス | 用途 |
|---|---|---|
| 基礎知識 | See references/basics.md | ORM基本概念 |
| スキーマ定義 | See references/schema-definition.md | テーブル定義 |
| リレーション | See references/relation-mapping.md | 関連設定 |
| クエリビルダー | See references/query-builder-patterns.md | クエリ構築 |
| パフォーマンス | See references/performance-patterns.md | 最適化パターン |
agents/(Task仕様)
| Task | 用途 |
|---|---|
| design-schema | スキーマ設計支援 |
| implement-queries | クエリ実装支援 |
| validate-optimize | 検証・最適化支援 |
assets/(テンプレート)
| リソース | パス | 用途 |
|---|---|---|
| スキーマ | assets/schema-template.md |
テーブル定義 |
変更履歴
| Version | Date | Changes |
|---|---|---|
| 1.1.0 | 2026-01-02 | description形式更新、agents/追加、basics.md作成 |
| 1.0.0 | 2025-12-31 | 18-skills.md仕様準拠へ更新 |
| 0.9.0 | 2025-12-24 | Spec alignment and required artifacts added |