== ЕР дијаграм [[Image(TravelSageER.svg, align=center)]] === Ентитети и атрибути === * **Дестинации** – претставува основен ентитет кој ги опишува сите туристички дестинации достапни во апликацијата. * идДест (нумерички податок, примарен клуч, задолжителен атрибут): Уникатен идентификатор за дестинацијата. * имеЛокација (текстуален податок, задолжителен атрибут): Името на дестинацијата. * описЛокација (текстуален податок): Детален опис на дестинацијата. * типовиМеста (повеќевредносен атрибут, текстуален податок, задолжителен атрибут): Категоризација на дестинацијата (на пример, планина, плажа, град, село итн.). * препорачанаСезона (повеќевредносен атрибут, текстуален податок, задолжителен атрибут): Сезони во кои е препорачливо да се посети дестинацијата. * просечнаТемп (децимален податок): Просечна температура за таа дестинација. * геоЛокација (координати, географски тип податок): Географска позиција (координати). * држава (текстуален податок): Држава каде што се наоѓа местото. * популарност (нумерички податок): Рангирање базирано на број на посетители или рецензии. * важниЛокации (сложен атрибут, текстуален податок): Клучни места т.е. знаменитости што ја карактеризираат дестинацијата (на пример, музеи, паркови), кој има име и опис за соодветната локација. * **Корисници** – ентитет кој ги претставува регистрираните корисници на апликацијата. * идКорисник (нумерички податок, примарен клуч, задолжителен атрибут): Уникатен идентификатор за секој корисник. * логинИме (сложен атрибут, текстуален податок, задолжителен атрибут): Име и презиме за најава. * еПошта (текстуален податок, задолжителен атрибут): Електронска адреса на корисникот. * телБр (текстуален податок, задолжителен атрибут): Листа на телефонски броеви на корисникот. * датумРаѓање (датум): Датум на раѓање на корисникот. * **Стандард** – ентитет кој е дијункнтно разложување со тотално учество на ентитетот Корисници што значи дека корисникот мора да е еден од двата понудени ентитети. Овој ентитет се однесува на корисниците кои ја користат апликацијата вообичаено, без никакви дополнителни претплатувања. Ќе ги содржи само сите атрибути на наткласата, а за додатни нема да има, бидејќи самиот ентитет не вклучува други атрибути. * идКорисник (нумерички податок, примарен клуч, задолжителен атрибут): Уникатен идентификатор за секој корисник. * логинИме (сложен атрибут, текстуален податок, задолжителен атрибут): Име и презиме за најава. * еПошта (текстуален податок, задолжителен атрибут): Електронска адреса на корисникот. * телБр (текстуален податок, задолжителен атрибут): Листа на телефонски броеви на корисникот. * датумРаѓање (датум): Датум на раѓање на корисникот. * **Премиум** – ентитет кој е дијункнтно разложување со тотално учество на ентитетот Корисници што значи дека корисникот мора да е еден од двата понудени ентитети. Ќе ги содржи сите атрибути на наткласата, дополнително и сопствените. * идКорисник (нумерички податок, примарен клуч, задолжителен атрибут): Уникатен идентификатор за секој корисник. * логинИме (сложен атрибут, текстуален податок, задолжителен атрибут): Име и презиме за најава. * еПошта (текстуален податок, задолжителен атрибут): Електронска адреса на корисникот. * телБр (текстуален податок, задолжителен атрибут): Листа на телефонски броеви на корисникот. * датумРаѓање (датум): Датум на раѓање на корисникот. * датумКреирање (датум): Датум на креирање. * попуст (нумерички податок): соодветен процентуален износ за попуст за премиум корисници. * **Рецензии** – ентитет кој ги опфаќа рецензиите што корисниците ги оставаат за дестинациите. * идРецензија (нумерички податок, примарен клуч, задолжителен атрибут): Уникатен идентификатор за рецензијата. * корисничкоИме (текстуален податок, задолжителен атрибут): Корисник што ја оставил рецензијата. * квалитет (нумерички податок, задолжителен атрибут): Оцена во форма на број или ѕвезди. * забелешка (текстуален податок): Текстуален коментар. * датумРецензија (датум): Датум на објавување. * брГласови (нумерички податок): Број на корисници што оставиле рецензија. * **Метеролошка состојба** – ентитет што ги следи актуелните временски услови за секоја дестинација. * идМетео (нумерички податок, примарен клуч, задолжителен атрибут): Уникатен идентификатор. * моментТемп (децимален податок): Моментална температура. * состојбаВреме (повеќевредносен атрибут, текстуален податок, задолжителен атрибут): Опис на временските услови (сончево, дождливо). * предупредувања (повеќевредносен атрибут, текстуален податок, задолжителен атрибут): Можни временски предупредувања (на пример, бура и сл.). * влажност (децимален податок): Процент на влажност. * ветер (децимален податок): Брзина на ветерот. * месец (нумерички податок): Месец за мерењето. * **Пакети** – ентитет за туристички пакети кои содржат повеќе активности или услуги. * идПакет (нумерички податок, примарен клуч, задолжителен атрибут): Уникатен идентификатор за пакетот. * имеПакет (текстуален податок, задолжителен атрибут, задолжителен атрибут): Име на пакетот. * цена (нумерички податок, задолжителен атрибут): Вкупна цена на пакетот. * времетраење (сложен атрибут, датум, задолжителен атрибут): Временски период (почеток и крај). * **Активности** – ентитет за индивидуалните активности достапни на дестинациите. * идАктивност (нумерички податок, примарен клуч, задолжителен атрибут): Уникатен идентификатор. * имеАктивност (текстуален податок, задолжителен атрибут): Име на активноста. * информации (текстуален податок): Детален опис. * категорија (повеќевредносен атрибут, текстуален податок, задолжителен атрибут): Категоризација (на пример, спортска, културна). * износ (нумерички податок): Цена за учество. * **Резервации** - ентитет за резервациите што ги прават корисниците. * идРезервација (нумерички податок, примарен клуч, задолжителен атрибут): Уникатен идентификатор. * временскаТочка (датум, задолжителен атрибут): Датум на резервацијата. * вкупнаЦена (нумерички податок, задолжителен атрибут): Финална цена. * **Преференции** – ентитет кој ги прикажува деталните преференции на корисниците во апликацијата. Овозможува прилагодување на содржината според интересите на секој корисник. * идПреференца (нумерички податок, примарен клуч, задолжителен атрибут): Уникатен идентификатор за секоја преференција. * типПреференца (повеќевредносен атрибут, текстуален податок, задолжителен атрибут): Список на различни типови преференции, како активности, дестинации или временски услови. * приоритет (нумерички податок): Важност на секоја преференца. * **Настани** - ентитет кој опфаќа информации за сите настани што се одржуваат во достапните дестинации. Ги збогатува податоците со динамични и временски специфични активности. * идНастан (нумерички податок, примарен клуч, задолжителен атрибут): Уникатен идентификатор за секој настан. * назив (текстуален податок, задолжителен атрибут): Назив на настанот. * видови (повеќевредносен атрибут, текстуален податок, задолжителен атрибут): Категории или видови на настани, како културни, спортски или музички. * почетенДатум (датум): Датум кога настанот започнува. * краенДатум (датум): Датум кога настанот завршува. * детали (текстуален податок): Детален опис на настанот. * **Тагови** - ентитет кој овозможува категоризација на дестинациите за подобро пребарување и пронаоѓање според интересите на корисниците. * идТаг (нумерички податок, примарен клуч, задолжителен атрибут): Уникатен идентификатор за секој таг. * тагОзнака (текстуален податок, задолжителен атрибут): Име на тагот што ја претставува категоријата. === Релации === * **Корисници ↔ Рецензии (пишува)** * Кардиналност: 1:N * Опис: Еден корисник може да остави повеќе рецензии, но секоја рецензија е поврзана со еден корисник. * **Корисници ↔ Резервации (направена)** * Кардиналност: 1:N * Опис: Еден корисник може да направи повеќе резервации, но секоја резервација е поврзана со еден корисник. * **Корисници ↔ Преференци (посочува)** * Кардиналност: 1:N * Опис: Еден корисник може да има повеќе преференции, а секоја преференца е поврзана со еден корисник. * **Дестинации ↔ Рецензии (располага)** * Кардиналност: 1:N * Опис: Една дестинација може да има повеќе рецензии од различни корисници и секоја рецензија се однесува на одредена дестинација. * **Дестинации ↔ Метеролошка Состојба (поседува)** * Кардиналност: 1:N** * Опис: Една дестинација може да има повеќе записи за временските услови во различни периоди. * **Дестинации ↔ Активности (содржи)** * Кардиналност: 1:N * Опис: Една дестинација може да содржи повеќе активности. * **Дестинации ↔ Настани (одржува)** * Кардиналност: 1:N * Опис: Една дестинација може да има повеќе настани. * **Тагови ↔ Дестинации (има)** * Кардиналност: N:M * Опис: Една дестинација може да има повеќе тагови, а секој таг може да биде поврзан со повеќе дестинации. * **Дестинации ↔ Пакети (вклучува)** * Кардиналност: 1:N * Опис: Една дестинација може да биде дел од повеќе пакети, додека секој пакет е поврзан со една дестинација. * **Пакети ↔ Активности (сеОднесува)** * Кардиналност: N:M * Опис: Еден пакет може да содржи повеќе активности, а една активност може да биде дел од повеќе пакети. * **Резервации ↔ Активности (опфаќа)** * Кардиналност: N:M * Опис: Една резервација може да вклучува повеќе активности, додека секоја активност е поврзана со повеќе резервации. * **Рецензии ↔ Резервации (може)** * Кардиналност: 1:1 * Опис: Една рецензија е поврзана со една резервација, истото и во спротивната насока. * **Метеролошка Состојба ↔ Резервации (важиЗа)** * Кардиналност: 1:N * Опис: Една временска состојба може да биде поврзана со повеќе резервации за една дестинација, но една резервација е поврзана со една временска состојба. * **Корисници ↔ Резервации ↔ Активности (препорака)** * Кардиналност: N:M:P * Опис: Корисник може да остави повеќе препораки за различни дестинации. Една дестинација може да има повеќе препораки од различни корисници. Препораките чуваат атрибути: оцена, коментар и датум.