一键导入
db-design
RDBMS + ORM 前提のデータベース・スキーマ設計ガイド(ツール非依存)。DB設計ワークフロー、テーブル設計原則、正規化/非正規化判断、型設計、インデックス戦略、リレーション設計、マイグレーション管理をカバー。テーブル設計、データモデル設計、マイグレーション時に使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
RDBMS + ORM 前提のデータベース・スキーマ設計ガイド(ツール非依存)。DB設計ワークフロー、テーブル設計原則、正規化/非正規化判断、型設計、インデックス戦略、リレーション設計、マイグレーション管理をカバー。テーブル設計、データモデル設計、マイグレーション時に使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Generate draw.io diagrams as .drawio files, optionally export to PNG/SVG/PDF with embedded XML
Figma MCP を使ってデザインを FE コードに変換するスキル。 Trigger when: Figma URL が共有された時、デザインからコンポーネント実装時、 UI 実装でデザイン参照が必要な時、"Figma", "デザイン", "UI実装" への言及時、 「このデザインを実装して」「Figma から」「デザイン通りに」と言われた時。 Always use with: /web-design-principles
プロジェクト全体の統括エージェント向けスキル。要件整理から技術選定・アーキテクチャ設計・タスク分解・委譲までをカバー。git worktreeを活用した並列開発オーケストレーション(featureブランチ管理、BE/FE統括への委譲、横断レビュー)も担う。プロジェクト全体を俯瞰し、適切なエージェント/スキルに委譲する。新規プロジェクト立ち上げ、技術選定、全体設計、タスク分解・委譲、並列開発時に使用。
Webデザイン実装の鉄則ガイド。CSS/レイアウト設計の原則を提供。 Trigger when: UI/UX実装時、CSS設計時、レイアウト実装時、レスポンシブ対応時、 アクセシビリティ確認時、"レイアウト", "CSS", "スタイル" への言及時。 /figma-to-code スキルと併用する場合に自動で参照される。
Codex CLIワーカーエージェントを起動してタスクを実行する。 Claude CodeがオーケストレーターとしてCodexを呼び出すハイブリッド構成。 トリガー: 「Codexで実行」「Codexに任せて」「並列でCodex」「高速に処理」
CSS の包括的なベストプラクティスガイド(フレームワーク非依存)。パフォーマンス最適化、保守性、シンプルなコード、親子要素の相対値設計、モダン CSS 機能(Container Queries、:has()、ネイティブネスティング、Cascade Layers)をカバー。CSS 設計・実装・レビュー時に使用。Tailwind CSS 等のユーティリティフレームワーク使用時は tailwind-css スキルを参照。
| name | db-design |
| description | RDBMS + ORM 前提のデータベース・スキーマ設計ガイド(ツール非依存)。DB設計ワークフロー、テーブル設計原則、正規化/非正規化判断、型設計、インデックス戦略、リレーション設計、マイグレーション管理をカバー。テーブル設計、データモデル設計、マイグレーション時に使用。 |
RDBMS + ORM 前提のフレームワーク非依存ガイド。
1. 要件からエンティティを抽出
2. 関連(リレーション)を定義
3. 属性と制約を決定
4. 正規化 (3NF を目標)
5. 非正規化の検討(パフォーマンス要件に応じて)
6. インデックス設計
7. マイグレーション作成
テーブル名: 複数形・スネークケース (users, order_items)
カラム名: スネークケース (created_at, user_id)
外部キー: {参照テーブル単数}_id (user_id, order_id)
真偽値: is_, has_, can_ プレフィックス (is_active, has_permission)
id : 主キー(UUID or 連番)
created_at : 作成日時(NOT NULL)
updated_at : 更新日時(NOT NULL)
deleted_at : 論理削除日時(NULL 許容、必要な場合のみ)
| 用途 | 推奨 | 避ける |
|---|---|---|
| 主キー | UUID / ULID / auto increment | 文字列ID |
| 日時 | timestamp with timezone | 文字列 |
| 金額 | decimal / integer (最小単位) | float |
| 状態 | enum / varchar + CHECK | integer |
| フラグ | boolean | integer (0/1) |
| JSON | jsonb (対応DBの場合) | text |
| レベル | 排除するもの | 例 |
|---|---|---|
| 1NF | 繰り返しグループ | カンマ区切りの値 → 別テーブル |
| 2NF | 部分関数従属 | 複合キーの一部だけで決まる属性 |
| 3NF | 推移関数従属 | 非キー属性が別の非キー属性に依存 |
| 場面 | 手法 | トレードオフ |
|---|---|---|
| 読み取り頻度が高い集計値 | 事前計算カラム追加 | 更新時の整合性コスト |
| 頻繁な JOIN の回避 | 冗長カラム追加 | ストレージ + 更新コスト |
| 履歴データの保持 | スナップショット | ストレージ増 |
| 検索パフォーマンス | 非正規化ビュー | 同期コスト |
原則: まず正規化し、計測に基づいて非正規化を検討
詳細: references/normalization.md
UserId と OrderId を型レベルで区別
→ 引数の取り違えをコンパイル時に検出
Status = 'pending' | 'approved' | 'rejected'
設計原則:
- 状態遷移を明確に定義
- 無効な遷移を型レベルで防ぐ
- DB には文字列 or enum 型で保存
NOT NULL をデフォルトとし、NULL は明確な理由がある場合のみ使用
NULL の正当な用途:
- 任意フィールド(ユーザーが未入力)
- 論理削除の deleted_at
- 将来の拡張フィールド
NULL を避けるべき場面:
- デフォルト値で代替可能な場合
- 空文字列/0/false で表現できる場合
| 対象 | 理由 |
|---|---|
| 外部キー | JOIN パフォーマンス |
| WHERE で頻繁に使うカラム | 検索パフォーマンス |
| ORDER BY で使うカラム | ソートパフォーマンス |
| UNIQUE 制約のあるカラム | 一意性保証 |
| 種類 | 用途 |
|---|---|
| 単一カラム | 単純な条件検索 |
| 複合 | 複数条件の AND 検索(左端一致原則) |
| 部分 | 条件付きインデックス(WHERE 句付き) |
| 全文検索 | テキスト検索 |
詳細: references/indexing-strategy.md
| 関係 | 実装 | 例 |
|---|---|---|
| 1:1 | 外部キー + UNIQUE 制約 | users ↔ profiles |
| 1:N | 子テーブルに外部キー | users → orders |
| N:M | 中間テーブル | users ↔ roles (user_roles) |
| 自己参照 | 同テーブルの外部キー | categories (parent_id) |
中間テーブル名: {テーブルA}_{テーブルB} (アルファベット順)
例: user_roles, order_items
カラム:
- 各テーブルの外部キー
- created_at
- 追加属性(関係に紐づくデータ)
| アクション | 用途 | 注意 |
|---|---|---|
| CASCADE | 親削除時に子も削除 | 意図しない大量削除に注意 |
| SET NULL | 親削除時に NULL に | NULL 許容カラムのみ |
| RESTRICT | 子が存在する場合は親削除を拒否 | デフォルト推奨 |