orm-best-practices
ORMベストプラクティスの専門スキル。Drizzle ORMを活用したエンティティ設計、リレーション管理、パフォーマンス最適化を提供します。Anchors:• Designing Data-Intensive Applications (Martin Kleppmann) / 適用: データモデリング / 目的: 型安全なスキーマ定義とパフォーマンス最適化• Drizzle ORM Documentation / 適用: TypeScript ORM / 目的: 型推論とクエリビルダーの活用• High Performance MySQL (Baron Schwartz) / 適用: クエリ最適化 / 目的: N+1問題とインデックス戦略Trigger:Use when defining Drizzle ORM schemas, mapping entity relationships, optimizing database queries, solving N+1 problems, or implementing type-safe data access patterns.ORM, Drizzle, schema, relation, N+1, query builder, type-safe, entity mapping
When & Why to Use This Skill
This Claude skill provides expert-level guidance on ORM best practices, specifically optimized for Drizzle ORM. It empowers developers to design type-safe database schemas, manage complex entity relationships, and implement high-performance query patterns. By integrating principles from 'Designing Data-Intensive Applications' and 'High Performance MySQL,' it ensures robust, scalable, and efficient data access layers for TypeScript applications.
Use Cases
- Architecting type-safe database schemas using Drizzle ORM to ensure compile-time data integrity and reduce runtime errors.
- Optimizing database performance by identifying and resolving N+1 query problems through advanced query builder patterns.
- Mapping complex many-to-many and one-to-many entity relationships with clear foreign key constraints and efficient join strategies.
- Implementing high-performance indexing and query optimization strategies based on industry-standard database engineering principles.
- Automating the validation of schema definitions and generating optimized data access code for rapid and reliable software development.
| name | orm-best-practices |
|---|---|
| description | | |
| • Designing Data-Intensive Applications (Martin Kleppmann) / 適用 | データモデリング / 目的: 型安全なスキーマ定義とパフォーマンス最適化 |
| • Drizzle ORM Documentation / 適用 | TypeScript ORM / 目的: 型推論とクエリビルダーの活用 |
| • High Performance MySQL (Baron Schwartz) / 適用 | クエリ最適化 / 目的: N+1問題とインデックス戦略 |
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 |