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łownik | Podrzędna |
|---|---|---|
| Powtarzalność danych | przechowuje unikalne wartości | odwołuje się do nadrzędnych |
| Klucze obce | brak | obowiązkowo |
| Zastosowanie | kategoryzacja / słownik pojęć | modelowanie zależności |
| Kiedy tworzyć | jako pierwszą | po słownikach |
Dlaczego to wszystko ma sens?
- baza działa szybciej — mniej powtarzalnego syfu,
- dane są spójne — wiadomo, co do czego pasuje,
- relacje mają sens — każdy element wie, gdzie jego miejsce,
- 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.