postgresql-table-design
Projektuj schematy PostgreSQL zgodnie z best practices – indeksy, typy danych, normalizacja i wydajność
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Umiejętność do projektowania schematów PostgreSQL opartych na sprawdzonych wzorcach. Dowiesz się, jak definiować klucze główne, normalizować dane do trzeciej postaci normalnej, wybierać odpowiednie typy danych (TIMESTAMPTZ, NUMERIC, BIGINT), tworzyć indeksy na kolumnach obcych i kluczach wyszukiwania, oraz unikać pułapek PostgreSQL takich jak brak automatycznego indeksowania FK czy zachowanie NULL w ograniczeniach UNIQUE. Materiał obejmuje również zaawansowane funkcje i wzorce wydajnościowe.
Jak używać
Zainstaluj umiejętność w swoim środowisku agenta, dodając repozytorium wshobson/agents do ścieżki pluginów lub pobierając folder postgresql-table-design z katalogu skills/database-design.
Przygotuj opis tabeli, którą chcesz zaprojektować – określ jej cel (np. tabela użytkowników, zdarzeń, zamówień), główne kolumny i ich znaczenie biznesowe.
Zdefiniuj klucz główny: dla tabel referencyjnych (users, orders) użyj BIGINT GENERATED ALWAYS AS IDENTITY, dla danych wymagających globalnej unikalności wybierz UUID. Dla danych szeregów czasowych lub logów klucz główny może być opcjonalny.
Znormalizuj schemat do trzeciej postaci normalnej, aby wyeliminować redundancję danych. Rozważ denormalizację tylko wtedy, gdy udowodnisz, że wydajność złączeń stanowi rzeczywisty problem – prematura denormalizacja zwiększa złożoność utrzymania.
Wybierz odpowiednie typy danych: TIMESTAMPTZ dla czasów zdarzeń, NUMERIC dla kwot pieniężnych, TEXT dla łańcuchów znaków, BIGINT dla liczb całkowitych, DOUBLE PRECISION dla zmiennoprzecinkowych. Dodaj ograniczenia NOT NULL gdzie są semantycznie wymagane i DEFAULT dla wartości domyślnych.
Utwórz indeksy dla ścieżek dostępu, które faktycznie zapytują – klucze główne i unikalne (automatyczne), kolumny kluczy obcych (musisz dodać ręcznie), częste filtry i sortowania, oraz kolumny złączeń. Pamiętaj, że PostgreSQL nie indeksuje automatycznie kolumn kluczy obcych.