[[Image(RelationalModel.jpg, 1400px)]] == Дескриптивна документација и аргументација == === Врска Филм – Жанр (M:N) === Врската помеѓу филмовите и жанровите е моделирана како многу-кон-многу (M:N) со помош на посредничката табела MOVIE_GENRE. Овој пристап е избран затоа што еден филм може да припаѓа на повеќе жанрови (на пример акција, драма, научна фантастика), а секој жанр може да содржи повеќе филмови. Со користење на посебна табела се избегнува дуплирање на податоци и се овозможува поголема флексибилност при додавање нови врски. === Врски Филм – Актер и Филм – Режисер === Врските помеѓу филмовите и актерите, како и помеѓу филмовите и режисерите, се моделирани како многу-кон-многу (M:N) преку табелите MOVIE_ACTOR и MOVIE_DIRECTOR. Причината за ова е што еден филм може да има повеќе актери и режисери, а истите актери и режисери можат да учествуваат во повеќе филмови. Овој модел овозможува реалистично претставување на доменот и лесно проширување на податоците. === Резервации и корисници === Врската помеѓу корисниците и резервациите е моделирана преку табелата USER_RESERVATION. Овој пристап овозможува флексибилност во случај еден корисник да има повеќе резервации, а исто така остава можност за проширување на системот (на пример, групни резервации). Со ова се избегнува директно врзување на корисникот во табелата RESERVATION и се добива поголема модуларност. === Билет, седиште и проекција === Табелата TICKET претставува централна точка во моделот и ги поврзува корисникот, резервацијата, седиштето и проекцијата. Секој билет е поврзан со конкретно седиште и конкретна проекција, што овозможува прецизно следење на зафатеноста на седиштата. Овој модел овозможува контрола на капацитетот на кино салата и спречува двојно резервирање на исто седиште. === Проекција (SCREENING) === Табелата SCREENING ги поврзува филмовите со кино салите и временските термини. Секој запис претставува една конкретна проекција на одреден филм во одредена сала и во одредено време. Ова овозможува флексибилно планирање на распоредот и лесно управување со прикажувањето на филмовите. === Плаќање и метод на плаќање === Плаќањата се моделирани преку табелата PAYMENT, која е поврзана со резервациите. Дополнително, постои табела PAYMENT_METHOD која го дефинира начинот на плаќање (картичка, готовина и сл.). Оваа поделба овозможува проширување на системот со нови методи на плаќање без промена на основната структура. === Производи и купени производи === Табелата PRODUCT ги претставува производите (пијалаци, пуканки и сл.), додека PURCHASED_PRODUCT ја моделира врската помеѓу билетите и производите. Ова е M:N врска, бидејќи еден билет може да содржи повеќе производи, а еден производ може да биде купен со повеќе билети. Со ова се овозможува следење на дополнителна продажба во киното. === Нотификации и промоции === Табелата NOTIFICATION се користи за испраќање известувања до корисниците (на пример за потврда на резервација или плаќање). Табелата PROMOTION овозможува дефинирање на попусти и специјални понуди поврзани со одредени проекции. Ова овозможува подобра комуникација со корисниците и маркетинг можности. === Кино, сали и седишта === Киното (CINEMA) е поврзано со град (CITY), а секое кино има повеќе сали (CINEMA_HALL). Секоја сала има седишта (SEAT) со дефиниран тип (SEAT_TYPE). Овој хиерархиски модел овозможува реално претставување на физичката структура на киното и лесно управување со капацитетите.