Toolverse
All skills

postgresql

by sickn33

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

Quick info

Author
sickn33
Category
Backend
Views
28

About this skill

Design a PostgreSQL-specific schema. Covers best-practices, data types, indexing, constraints, performance patterns, and advanced features

How to use

  1. Zbierz wymagania: zidentyfikuj encje, wzorce dostępu do danych oraz docelową skalę (liczba wierszy, zapytań na sekundę, okres przechowywania danych).

  2. 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.

  3. 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.

  4. Normalizuj do 3NF: wyeliminuj redundancję danych i anomalie aktualizacji. Denormalizuj tylko dla udowodnionych, wysokowartościowych odczytów, gdzie wydajność złączeń jest problemem.

  5. Zaplanuj zaawansowane funkcje: jeśli skala lub kontrola dostępu tego wymagają, rozważ partycjonowanie tabel lub polityki RLS (Row Level Security).

  6. 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.

Related skills