Skip to content

Technická dokumentace schématu cinema

Tato část dokumentace detailně rozebírá každou tabulku, její datovou strukturu a vztahy.

1. Tabulka cinema

Účel: Slouží jako kořenová tabulka celého schématu. Reprezentuje fyzickou budovu multikina nebo kulturního centra.

AtributDatový typKlíčModifikátoryPopis
idSMALLINT UNSIGNEDPKAI, NOT NULLUnikátní identifikátor kina.
nameVARCHAR(45)NOT NULLNázev kina (např. "Kino Oko").
street_nameVARCHAR(65)NOT NULLNázev ulice.
street_numberVARCHAR(12)NOT NULLČíslo popisné/orientační.
cityVARCHAR(45)NOT NULLMěsto.
zip_codeVARCHAR(12)NOT NULLPoštovní směrovací číslo.
country_codeCHAR(2)NOT NULLISO kód země (např. "CZ").

2. Tabulka screen

Účel: Reprezentuje konkrétní sál v daném kině.

AtributDatový typKlíčModifikátoryPopis
idSMALLINT UNSIGNEDPKAI, NOT NULLIdentifikátor sálu.
nameVARCHAR(12)NOT NULLOznačení sálu (např. "Sál 1", "IMAX").
capacitySMALLINT UNSIGNEDDEFAULT 0Celkový počet míst v sále.
descriptionTEXTNULLTechnické parametry sálu.
cinema_idSMALLINT UNSIGNEDFKNOT NULLVazba na kino.
  • Vazby: N:1 k tabulce cinema.
  • Referenční omezení: ON DELETE CASCADE, ON UPDATE CASCADE (smazání kina smaže všechny jeho sály).

3. Tabulka seat_group

Účel: Sdružuje sedadla do logických skupin pro potřeby nacenění (např. Standardní zóna vs. VIP balkon).

AtributDatový typKlíčModifikátoryPopis
idSMALLINT UNSIGNEDPKAI, NOT NULLID skupiny sedadel.
nameVARCHAR(45)NOT NULLNázev skupiny.
descriptionVARCHAR(255)NULLBližší popis výhod skupiny.

4. Tabulka seat

Účel: Evidence konkrétních fyzických sedadel v sálech.

AtributDatový typKlíčModifikátoryPopis
idMEDIUMINT UNSIGNEDPKAI, NOT NULLID sedadla.
rowVARCHAR(6)NOT NULLOznačení řady (číslo nebo písmeno).
seat_numberTINYINT UNSIGNEDNOT NULLČíslo sedadla v řadě.
screen_idSMALLINT UNSIGNEDFKNOT NULLVazba na sál.
seat_group_idSMALLINT UNSIGNEDFKNOT NULLVazba na cenovou skupinu.
  • Vazby: N:1 k screen a N:1 k seat_group.
  • Integrita: UNIQUE INDEX na (screen_id, row, seat_number) brání duplicitám v sále.

5. Tabulka event

Účel: Katalog událostí, které lze v kině pořádat (filmy, konference, přenosy).

AtributDatový typKlíčModifikátoryPopis
idMEDIUMINT UNSIGNEDPKAI, NOT NULLID události.
titleVARCHAR(45)NOT NULLNázev filmu nebo akce.
runtime_minutesSMALLINT UNSIGNEDNOT NULLStopáž v minutách.
age_ratingVARCHAR(10)NULLVěková přístupnost (např. "12+").
descriptionTEXTNULLSynopse nebo program akce.

6. Tabulka session

Účel: Plánované promítání nebo konání události v čase a prostoru.

AtributDatový typKlíčModifikátoryPopis
idMEDIUMINT UNSIGNEDPKAI, NOT NULLID sezení.
start_timeDATETIMENOT NULLČas začátku akce.
event_idMEDIUMINT UNSIGNEDFKNOT NULLVazba na událost.
screen_idSMALLINT UNSIGNEDFKNOT NULLVazba na sál.
  • Vazby: N:1 k event a N:1 k screen.
  • Referenční omezení: ON DELETE RESTRICT (nelze smazat film, pokud má naplánované sezení).
  • Integrita: UNIQUE INDEX na (start_time, screen_id) brání kolizi akcí v jednom sále.

7. Tabulka customer

Účel: Evidence osobních údajů uživatelů.

AtributDatový typKlíčModifikátoryPopis
idMEDIUMINT UNSIGNEDPKAI, NOT NULLID zákazníka.
emailVARCHAR(45)UKNOT NULLUnikátní emailová adresa.
passwordVARCHAR(255)NULLHash hesla (pouze u registrovaných).
firstnameVARCHAR(45)NULLKřestní jméno.
surnameVARCHAR(45)NULLPříjmení.

8. Tabulka reservation

Účel: Zastřešuje nákupní proces. Spojuje zákazníka s konkrétním sezením.

AtributDatový typKlíčModifikátoryPopis
idMEDIUMINT UNSIGNEDPKAI, NOT NULLID rezervace.
created_atDATETIMEDEFAULT NOWČas vytvoření rezervace.
total_priceDECIMAL(10,2)DEFAULT 0Celková vypočtená cena.
is_paidTINYINT UNSIGNEDDEFAULT 0Stav platby (0=ne, 1=ano).
session_idMEDIUMINT UNSIGNEDFKNOT NULLVazba na sezení.
customer_idMEDIUMINT UNSIGNEDFKNULLVazba na zákazníka.
  • Vztahy: N:1 k session a N:1 k customer.
  • Referenční omezení: ON DELETE SET NULL u zákazníka (GDPR – anonymizace při zachování tržeb).

9. Tabulka ticket

Účel: Vazební tabulka (Ticket) definující, které sedadlo v rámci rezervace patří ke které cenové kategorii.

AtributDatový typKlíčModifikátoryPopis
reservation_idMEDIUMINT UNSIGNEDPK, FKNOT NULLVazba na rezervaci.
seat_idMEDIUMINT UNSIGNEDPK, FKNOT NULLVazba na sedadlo.
price_category_idSMALLINT UNSIGNEDFKNOT NULLTarif (Dospělý, Student...).
  • Primární klíč: Složený klíč (reservation_id, seat_id) – jedno sedadlo může být v rezervaci jen jednou.
  • Referenční omezení: ON DELETE CASCADE u rezervace (storno rezervace maže lístky).

10. Tabulka price

Účel: Cenová matice určující cenu lístku pro každé promítání, typ sedadla a tarif.

AtributDatový typKlíčModifikátoryPopis
session_idMEDIUMINT UNSIGNEDPK, FKNOT NULLPro které promítání.
seat_group_idSMALLINT UNSIGNEDPK, FKNOT NULLPro kterou zónu sedadel.
price_category_idSMALLINT UNSIGNEDPK, FKNOT NULLPro který tarif (věk).
priceDECIMAL(10,2)NOT NULLFinální cena v měně.