Analýza systému: Rezervační portál pro multikina a kulturní centra
1. Cíl projektu
Cílem je vytvořit robustní databázové pozadí pro rezervační systém, který není omezen pouze na promítání filmů, ale umožňuje správu jakýchkoliv kulturních událostí (konference, přednášky, divadlo) v rámci fyzických prostor kina. Systém musí řešit variabilitu cen v závislosti na čase, typu sedadla a kategorii návštěvníka.
2. Definice domény (Business Rules)
2.1 Prostor a kapacita
- Multi-kino: Systém musí podporovat více poboček (budov) pod jednou správou.
- Sály a sedadla: Každé kino má několik sálů s pevnou kapacitou. Sedadla jsou definována řadou a číslem.
- Zónování: Sedadla v sále nejsou rovnocenná. Jsou dělena do skupin (např. VIP zóna, standard, bezbariérové), což ovlivňuje výslednou cenu.
2.2 Události a plánování
- Univerzální obsah: Událost (
event) je obecná entita. Může to být film s věkovou přístupností nebo odborná konference. - Relace (
session): Událost je nasazena do konkrétního sálu a času. Musí být zajištěno, aby v jednom sále neprobíhalo více událostí najednou.
2.3 Cenotvorba
- Cenová matice: Cena není statická vlastnost filmu. Je výsledkem průniku tří faktorů:
- Konkrétní čas a typ akce (
session). - Kvalita sedadla (
seat_group). - Typ návštěvníka (
price_category– dítě, dospělý, senior).
2.4 Rezervační proces
- Zákaznický přístup: Systém umožňuje nákup registrovaným uživatelům (historie, věrnostní body) i neregistrovaným hostům (pouze na základě validního e-mailu).
- Vstupenka (
ticket): Jedna rezervace může obsahovat více lístků na různá sedadla a pro různé typy tarifů.
3. Technické požadavky a omezení
3.1 Datová integrita
- Nesmí dojít k "double-bookingu" (prodej jednoho sedadla vícekrát v rámci jedné relace).
- Systém musí bránit smazání historických dat o tržbách, i když je smazán profil uživatele (požadavek GDPR a účetnictví).
3.2 Škálovatelnost
- Návrh musí počítat s tisíci relacemi měsíčně a statisíci prodanými lístky. Tomu odpovídá volba datových typů (např.
MEDIUMINTpro transakční tabulky).
4. Entity-Relationship Model (ERM)
V rámci analýzy byly identifikovány následující klíčové vztahy, které tvoří kostru SQL implementace:
- Cinema (1) : Screen (N) – Budova a její prostory.
- Event (1) : Session (N) – Katalog a jeho nasazení do programu.
- Session (1) : Reservation (N) – Prodej lístků na konkrétní termín.
- Seat (N) : Seat_Attribute (M) – Vlastnosti sedadel (vazební tabulka).
- Reservation (1) : Ticket (N) – Položky jedné objednávky.
Metodický pokyn pro studenty:
Při studiu tohoto projektu se zaměřte na to, jak tabulka price dekomponuje složitý problém dynamického naceňování do jednoduché vyhledávací matice. Tato tabulka je klíčem k pochopení toho, jak systém generuje finanční hodnotu lístku.