Biblioteka promptów

Schemat bazy danych z opisu aplikacji

Tabele, kolumny, relacje i indeksy zaprojektowane na podstawie opisu funkcji – zanim napiszesz pierwszą linijkę kodu.

Prompt – 4 zmienne do uzupełnienia

Zaprojektuj schemat bazy danych dla aplikacji.
Opis aplikacji i najważniejszych funkcji: [OPIS APLIKACJI].
Kto korzysta (role, uprawnienia): [UŻYTKOWNICY].
Baza danych: [BAZA DANYCH].
Przewidywana skala (rekordy, użytkownicy): [SKALA].

Przygotuj:
1. listę tabel z krótkim opisem,
2. dla każdej tabeli: kolumny, typy, NULL/NOT NULL, klucze główne i obce,
3. relacje (jeden do wielu, wiele do wielu – z tabelą łączącą),
4. indeksy pod najczęstsze zapytania, z uzasadnieniem,
5. pełny skrypt CREATE TABLE,
6. 3 decyzje projektowe, które warto przemyśleć (np. usuwanie miękkie, historia zmian, waluty).
Wskaż, czego nie wiesz z mojego opisu i jakie założenie przyjąłeś.

Kiedy użyć tego promptu

Na początku nowego projektu – małej aplikacji, panelu dla klienta, wewnętrznego narzędzia. Błędy w schemacie bazy kosztują najwięcej, bo poprawia się je, gdy w tabelach są już dane, a na nich stoi cały kod. Przemyślenie struktury z modelem zajmuje kwadrans i często wyłapuje rzeczy, o których nie pomyślałeś.

Przykład

Przykładowe dane do uzupełnienia:

  • OPIS APLIKACJI: system rezerwacji sal szkoleniowych: sale, terminy, rezerwacje, faktury, przypomnienia mailowe
  • UŻYTKOWNICY: administrator, recepcja, klienci firmowi (kilka osób z jednej firmy)
  • BAZA DANYCH: MySQL 8
  • SKALA: kilkanaście sal, kilka tysięcy rezerwacji rocznie

Czego się spodziewać: Dostaniesz tabele typu rooms, companies, users, bookings i invoices z kluczami obcymi, indeksem na sali i dacie pod sprawdzanie konfliktów terminów oraz pytaniami do przemyślenia, np. czy rezerwacja może obejmować kilka sal i co się dzieje z fakturą po anulowaniu.

Jak dopasować prompt do siebie

  • Prosta aplikacja na SQLite: poproś o uproszczony schemat bez zbędnych tabel słownikowych.
  • Aplikacja z wieloma klientami (multi-tenant): dodaj wymóg kolumny klienta w każdej tabeli i indeksów pod nią.
  • Rozbudowa istniejącej bazy: wklej obecny schemat i poproś o zmiany z migracjami zamiast projektu od zera.

Wskazówki

  • Opisz najczęstsze operacje (co użytkownik robi codziennie) – od nich zależą indeksy.
  • Pieniądze przechowuj w typie DECIMAL albo w groszach jako liczby całkowite, nigdy jako FLOAT.
  • Przejrzyj schemat z osobą, która zna proces biznesowy – model nie zna wyjątków z Twojej firmy.

Najczęstsze błędy

  • Przechowywanie list w jednej kolumnie oddzielonych przecinkami zamiast tabeli łączącej.
  • Brak decyzji, co się dzieje z danymi powiązanymi przy usuwaniu rekordu.

Co dalej – dopytaj model

Gdy dostaniesz odpowiedź, możesz pójść krok dalej tym poleceniem:

Napisz do tego schematu przykładowe dane testowe (po kilka rekordów na tabelę) i 5 najczęstszych zapytań, których będzie używać aplikacja.