データベーススキーマの設計エラーは、パフォーマンスの問題やデータ整合性の問題を引き起こします。このスキルは、データ型、インデックス、制約、スケーラビリティパターンに関するPostgreSQL特化のベストプラクティスを提供します。
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「postgresql」を使用しています。 メール、名前、タイムスタンプを持つユーザーテーブルを設計
期待される結果:
- CREATE TABLE users (
- user_id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
- email TEXT NOT NULL UNIQUE,
- name TEXT NOT NULL,
- created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
- updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
- );
- CREATE UNIQUE INDEX ON users (LOWER(email));
「postgresql」を使用しています。 主キーにUUID还是BIGINTを使用すべきですか?
期待される結果:
- 次の場合にBIGINT GENERATED ALWAYS AS IDENTITYを使用します:
- - シーケンシャルIDが許容される場合
- - インデックスパフォーマンスが重要な場合
- - 小さいインデックスサイズが重要な場合
- 次の場合にUUIDを使用します:
- - グローバルな一意性が必要な場合
- - IDの不透明性がセキュリティ要件の場合
- - 複数のソースからデータを���ージする場合
セキュリティ監査
安全All 221 static analyzer findings were determined to be false positives. The skill consists entirely of markdown documentation (SKILL.md) with no executable code. Backtick characters are markdown formatting for code examples, not shell execution. References to security features like Row Level Security are PostgreSQL documentation, not Windows SAM access. The skill provides educational guidance for database schema design with no security risks.
品質スコア
作れるもの
新規アプリケーションスキーマ設計
適切なデータ型、主キー、外部キーリレーションシップ、一般的なクエリパターン用のインデックスを使用して、新しいWebアプリケーションの完全なデータベーススキーマを設計します。
スキーマレビューと最適化
パフォーマンスの問題、不足しているインデックス、不適切なデータ型、データ整合性の問題を引き起こす可能性のある制約の欠落について、既存のテーブル設計をレビューします。
移行計画
トランザクションDDL、並列インデックス作成、ダウンタイムなしで大規模テーブルに列を追加する戦略を使用して、安全なスキーマ進化を計画します。
これらのプロンプトを試す
メール、名前、登録日、オプションのプロファイル設定フィールドを持つユーザープロファイル保存用のPostgreSQLテーブルを設計します。適切なデータ型と制約を使用してください。
id、user_id、status、created_at列を持つクエリテーブルがあります。一般的なクエリはuser_idとstatusでフィルタリングし、created_atの降順でソートします。イ���デックス戦略を推奨してください。
商品属性をJSONB列に保存するか、別の列を作成するべきですか?属性は商品カテゴリによって異なり、ユーザーは特定の属性で頻繁に検索します。
月間1000���行増加しているイベントテーブルがあります。クエリは通常event_dateとdevice_idでフィルタリングします。パー���ィション戦略を推奨し、トレードオフを説明してください。
ベストプラクティス
- タイムゾーンの混乱を避けるため、すべてのイベントタイムスタンプにTIMESTAMPの代わりにTIMESTAMPTZを使用する
- PostgreSQLは外部キー列のインデックスを自動作成しないため、外部キー列に明示的なインデックスを追加する
- まず3NFに正規化し、実証された高ROIの読み取りパフォーマンス向上のためのみ非正規化する
回避
- CHECK制約付きTEXTの代わりに長さ制限付きVARCHARを使用する
- 実際のクエリパターンを分析せずにすべての列にインデックスを作成する
- 自動増分列にGENERATED ALWAYS AS IDENTITYの代わりにSERIALを使用する