postgresql
Design a PostgreSQL-specific schema. Covers best-practices, data types, indexing, constraints, performance patterns, and advanced features
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Design a PostgreSQL-specific schema. Covers best-practices, data types, indexing, constraints, performance patterns, and advanced features
How to use
Zbierz wymagania: zidentyfikuj encje, wzorce dostępu do danych oraz docelową skalę (liczba wierszy, zapytań na sekundę, okres przechowywania danych).
Wybierz typy danych i ograniczenia: użyj BIGINT GENERATED ALWAYS AS IDENTITY dla kluczy głównych w tabelach referencyjnych (użytkownicy, zamówienia), TIMESTAMPTZ dla czasów zdarzeń, NUMERIC dla pieniędzy, TEXT dla stringów. Dodaj NOT NULL wszędzie, gdzie jest semantycznie wymagane, i DEFAULT dla wartości domyślnych.
Zaprojektuj indeksy: utwórz je dla kolumn kluczy obcych (ręcznie), częstych filtrów i sortowań oraz kluczy złączenia. Waliduj wybór indeksów za pomocą EXPLAIN na rzeczywistych zapytaniach.
Normalizuj do 3NF: wyeliminuj redundancję danych i anomalie aktualizacji. Denormalizuj tylko dla udowodnionych, wysokowartościowych odczytów, gdzie wydajność złączeń jest problemem.
Zaplanuj zaawansowane funkcje: jeśli skala lub kontrola dostępu tego wymagają, rozważ partycjonowanie tabel lub polityki RLS (Row Level Security).
Przygotuj migrację: przed zastosowaniem zmian schematu na produkcji, utwórz kopię zapasową, przygotuj plan wycofania, przetestuj zmiany na środowisku staging i użyj narzędzi migracyjnych.