Tabulky a vztahy
Jak z datového modelu vzniknou skutečné tabulky. Sloupce, klíče, povinnost a to, co se stane při mazání.
14 minlekce 69/107
Po lekci umíš
- Rozumíš tomu, co je sloupec, klíč a cizí klíč
- Umíš zadat vytvoření tabulky včetně pravidel
- Víš, co se stane s navázanými daty při mazání
Obsah lekce (5)
Datový model z minulého modulu je popis. Tabulka je jeho skutečná podoba v databázi.
Anatomie tabulky
| id | jmeno | telefon | vytvoreno | |
|---|---|---|---|---|
| 1 | Jana Nováková | jana@example.com | 777123456 | 2026-03-01 |
| 2 | Petr Svoboda | petr@example.com | 2026-03-04 |
Sloupec
Jedna vlastnost. Má název a typ – text, číslo, datum, ano/ne.
Řádek
Jeden konkrétní zákazník.
Primární klíč
Sloupec
id. Jednoznačně určuje řádek. Nikdy se nemění a nikdy se nepoužívá znovu.Povinnost
jmenoaemailmusí být vyplněné.telefonmůže chybět – u Petra chybí.
Vztahy pomocí cizího klíče
Rezervace patří zákazníkovi. V databázi to znamená, že rezervace má sloupec s id zákazníka.
| id | zakaznik_id | datum | sluzba | stav |
|---|---|---|---|---|
| 10 | 1 | 2026-03-12 10:00 | Střih | potvrzeno |
| 11 | 1 | 2026-04-02 14:00 | Barvení | nové |
| 12 | 2 | 2026-03-15 09:00 | Střih | zrušeno |
Sloupci zakaznik_id se říká cizí klíč. Databáze díky němu hlídá, že rezervace nemůže odkazovat na zákazníka, který neexistuje.
Mnoho ku mnoha
Když může mít rezervace víc služeb a služba víc rezervací, vzniká tabulka navíc, která jen spojuje:
| rezervace_id | sluzba_id |
|---|---|
| 10 | 3 |
| 10 | 5 |
| 11 | 3 |
Rezervace 10 obsahuje služby 3 a 5. Nic víc v té tabulce není potřeba.
Co se stane při mazání
Tohle je rozhodnutí, které databáze udělá za tebe, když jí ho nezadáš – a její výchozí volba obvykle není ta, kterou chceš.
Zakázat mazání
Zákazníka nejde smazat, dokud má rezervace. Bezpečné, občas otravné.
Smazat i navázané
Smazáním zákazníka zmizí i jeho rezervace. Nebezpečné – a nevratné.
Vyprázdnit odkaz
Rezervace zůstanou, ale bez zákazníka. Hodí se zřídka.
Nemazat vůbec
Nejčastější správná odpověď. Řádek se jen označí jako smazaný a aplikace ho přestane zobrazovat.
Jak to zadat
Vytvoř tabulky podle modelu
Když máš hotový datový model a chceš z něj tabulky.
Vytvoř databázové schéma podle DATA.md.
Pravidla:
- Primární klíč je vždy bezvýznamný identifikátor, nikdy e-mail
nebo jiná měnitelná hodnota.
- U každé tabulky sloupce s časem vytvoření a poslední změny.
- Peníze ukládej v celých jednotkách (haléře), ne v desetinných číslech.
- Časy ukládej v UTC.
- U mazání používej měkké mazání (příznak), ne skutečné odstranění,
všude, kde jsou navázaná data.
- Povinnost sloupců nastav podle toho, co je v DATA.md.
Než to provedeš:
1. Ukaž mi navrhované schéma a vysvětli mi ho česky, tabulku po tabulce.
2. U každého vztahu napiš, co se stane při mazání.
3. Řekni mi, kde ses musel rozhodnout a jaká byla druhá možnost.Podle svého DATA.md nech vytvořit schéma databáze.
Pak si nech každou tabulku vysvětlit česky a u každého vztahu se zeptej: „Co se stane, když smažu tuhle věc?“
Odpovědi, které se ti nelíbí, nech změnit teď – potom to bude dražší.
Co si odnést
- Tabulka má sloupce, řádky a primární klíč, který se nikdy nemění.
- Vztah se dělá cizím klíčem: jedna informace na jednom místě.
- Mnoho ku mnoha potřebuje spojovací tabulku.
- U mazání navázaných dat obvykle chceš měkké mazání, ne skutečné odstranění.
Máš to za sebou?
Označ lekci jako hotovou, ať víš, kde jsi skončil. Nic se tím neuzamkne.
Další lekceMigrace – změna schématu bez ztráty datObsah aktualizován: 21. srpna 2026