database-schema-design について
正規化されたデータベーススキーマ、リレーション、制約、データ型の設計を支援するリファレンススキルです。新しいデータベースのモデル化やテーブル構成の見直しを行う開発者向けに、1NF、2NF、3NFとエンティティ・リレーションパターンのガイドを提供します。
主な機能
- 011NF、2NF、3NFのガイド
- 02エンティティ・リレーションパターンの指針
- 03リレーションと制約に関する助言
- 04PostgreSQLの正規化例
活用シーン
- 01新しいデータベーススキーマの計画
- 02テーブルとリレーション構成の定義
- 03正規化と制約の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill database-schema-designインストール後、Claude Code で/database-schema-designを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/entity-relationship-patterns.mdfirst-normal-form-1nf.mdsecond-normal-form-2nf.mdthird-normal-form-3nf.mdscripts/validate-schema.shtemplates/migration-template.sql詳細
データベーススキーマ設計
目次
概要
適切なリレーション、制約、データ型を備えた、スケーラブルで正規化されたデータベーススキーマを設計します。正規化の手法、リレーションのパターン、制約の設定方法を含みます。
使用する場面
- 新しいデータベーススキーマの設計
- データモデルの計画
- テーブル構造の定義
- リレーションの設計(1:1、1:N、N:N)
- 正規化の分析
- 制約とトリガーの計画
- スキーマレベルでのパフォーマンス最適化
クイックスタート
PostgreSQL - 繰り返しグループの排除:
-- NOT 1NF: repeating group in single column
CREATE TABLE orders_bad (
id UUID PRIMARY KEY,
customer_name VARCHAR(255),
product_ids VARCHAR(255) -- "1,2,3" - repeating group
);
-- 1NF: separate table for repeating data
CREATE TABLE orders (
id UUID PRIMARY KEY,
customer_name VARCHAR(255),
created_at TIMESTAMP DEFAULT NOW()
);
CREATE TABLE order_items (
id UUID PRIMARY KEY,
order_id UUID NOT NULL,
product_id UUID NOT NULL,
quantity INTEGER NOT NULL,
FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE CASCADE
);
リファレンスガイド
詳細な実装については、references/ ディレクトリを参照してください。
| ガイド | 内容 |
|---|---|
| 第一正規形(1NF) | 第一正規形(1NF) |
| 第二正規形(2NF) | 第二正規形(2NF) |
| 第三正規形(3NF) | 第三正規形(3NF) |
| エンティティ・リレーションシップのパターン | エンティティ・リレーションシップのパターン |
ベストプラクティス
✅ 推奨事項
- 確立されたパターンや規約に従ってください
- 読みやすく、保守しやすいコードを書いてください
- 適切なドキュメントを追加してください
- デプロイ前に十分なテストを行ってください
❌ 避けるべきこと
- テストや検証を省略しないでください
- エラー処理を無視しないでください
- 設定値をハードコードしないでください
コメント
Markdown 対応