🥔 Ziemniak w Dresie

Bazy w dresie #2.15 | Tabela słownikowa i tabela podrzędna (teoria)

📂 MySQL

Tabele w SQL to fundament całej tej układanki. Ale jak zaczniesz wrzucać wszystko do jednej wielkiej tabeli, to zrobisz taki burdel, że nawet baza danych powie “weź się ogarnij”. Dlatego są dwie potężne bronie: tabela słownikowa i tabela podrzędna. I zaraz wyjaśnię, o co w tym pierdolniku chodzi.

Tabela słownikowa – czyli “lista świętych wartości”


Tabela słownikowa to takie pudełko, gdzie trzymasz unikalne wartości, które będą się powtarzać w innych tabelach. Zamiast wpisywać sto razy “Horror” albo “Komedia”, wrzucasz to do słownika, a w innych tabelach trzymasz tylko numerki. Elegancko, czysto, bez literówek.

Co musi mieć tabela słownikowa?


  • unikalne wartości (zero duplikatów!)
  • klucz główny — takie małe ID do identyfikacji
  • żadnych kluczy obcych — słownik nikomu się nie kłania
  • wartości, które rzadko się zmieniają

Po co istnieje tabela słownikowa?


  • żeby nie powtarzać tych samych słów jak idiota,
  • żeby dane były spójne i poprawne,
  • żeby główne tabele nie były spuchnięte jak balon,
  • żeby zmieniać jedną rzecz w jednym miejscu — jak Pan.

Tabela podrzędna – ta, co patrzy w górę


Tabela podrzędna to taka, która musi się odwoływać do innej tabeli. Ma klucz obcy (FK), czyli ID z tabeli nadrzędnej, bo sama z siebie byłaby tylko sierotą w bazie. Jej dane logicznie zależą od innego obiektu.

Cechy tabeli podrzędnej:


  • ma przynajmniej jeden klucz obcy
  • trzyma dane zależne od większego obiektu
  • pilnuje integralności — FK musi wskazywać na coś, co istnieje

Gdzie użyjesz tabel podrzędnych?

  • relacja 1:N — np. jeden reżyser, wiele filmów,
  • relacja N:M — wtedy robisz tabelę łącznikową,
  • wszędzie tam, gdzie coś “należy” do czegoś innego.

Słownik vs podrzędna – bitwa o tron


Co to jest?SłownikPodrzędna
Powtarzalność danychprzechowuje unikalne wartościodwołuje się do nadrzędnych
Klucze obcebrakobowiązkowo
Zastosowaniekategoryzacja / słownik pojęćmodelowanie zależności
Kiedy tworzyćjako pierwsząpo słownikach

Dlaczego to wszystko ma sens?


  1. baza działa szybciej — mniej powtarzalnego syfu,
  2. dane są spójne — wiadomo, co do czego pasuje,
  3. relacje mają sens — każdy element wie, gdzie jego miejsce,
  4. normalizacja nie płacze — a to już sukces.

Podsumowanie — SQL-owy morał


Jeśli chcesz mieć bazę, która nie wygląda jak szafa po remoncie, ogarnij dwie rzeczy:

  • tabele słownikowe — przechowują unikalne wartości i nie mają FK,
  • tabele podrzędne — trzymają dane zależne i mają klucze obce.

Dzięki nim baza działa szybko, logicznie i nie rzuca błędami w twarz przy każdej zmianie.