postgresql-table-design
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
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.