= Релационен Модел == ЕР Дијаграм за системот '''Relational diagram''' ---- [[Image(24.03.svg​, 800px, align=center)]] ---- == Детален опис на табелите = Детален опис на ER дијаграмот = Ентитет-релациониот модел за системот „Резерво“ е дизајниран со цел да обезбеди флексибилна и скалабилна платформа за управување со закажување на услуги во мали бизниси. Основната архитектура се базира на јасна поделба помеѓу корисници, бизниси, услуги и термини, при што се користат принципи на нормализација и избегнување на дуплирање на податоци. Во основата на системот се наоѓа ентитетот '''User''', кој претставува централен идентитет за автентикација. Од него произлегуваат специјализирани ентитети како '''Customer''', '''Employee''' и '''Manager''', преку one-to-one релации. Овој пристап овозможува централизирано управување со кориснички податоци, додека во исто време се задржува флексибилност за дефинирање на различни улоги и нивните специфични атрибути. Ентитетот '''Business''' претставува организациска единица (на пример фризерски салон) и е поврзан со повеќе помошни ентитети. Бизнисот може да има повеќе локации, што е моделирано преку one-to-many релација со ентитетот '''Location''', со што се овозможува поддршка за повеќе филијали. Работното време е издвоено во посебен ентитет '''Business Hours''', со цел да се обезбеди флексибилност по денови и да се избегне сложена структура во самиот Business ентитет. Дополнително, бизнисот може да има повеќе слики преку ентитетот '''Gallery''', што овозможува подобра презентација. Релациите помеѓу бизнисите и корисниците со административни или извршни улоги се моделирани како many-to-many. Ентитетот '''Business_Manager''' овозможува еден менаџер да управува со повеќе бизниси и обратно, при што се чуваат и временски атрибути како период на важност. Слично, преку '''Business_Employee''' се следи ангажманот на вработените во различни бизниси низ време. Услугите се моделирани преку ентитетот '''Service''', кој е поврзан со '''Service Category''' во one-to-many релација, што овозможува логичка организација и избегнување на дуплирање. Односот помеѓу бизнис и услуга е many-to-many, бидејќи иста услуга може да се нуди во повеќе бизниси, но со различна цена, времетраење или достапност. Затоа, релацијата '''Business_Service''' содржи дополнителни атрибути кои зависат од конкретниот бизнис. Вработените и услугите исто така се поврзани преку many-to-many релација ('''Employee_Service'''), со што се дефинира кои услуги може да ги извршува секој вработен. Ова овозможува прецизно моделирање на вештини и капацитети. Специјалностите се дополнителен слој на класификација, каде што бизнисите и вработените се поврзани преку соодветни релации. Ова овозможува детално опишување на експертизата во различни контексти. Работното време на вработените е моделирано преку ентитетот '''Working Schedule''', кој е поврзан со повеќе '''Slot''' записи. Slot-овите претставуваат временски интервали што директно се користат за управување со достапност и закажување. Централниот ентитет во системот е '''Appointment''', кој ги поврзува customer, employee, business, service и slot. Овој ентитет претставува конкретна резервација и овозможува следење на сите релевантни информации за закажан термин. Релациите се дефинирани како many-to-one, бидејќи еден корисник, вработен или бизнис може да има повеќе термини. Откажувањето на термините е моделирано преку посебен ентитет '''Cancellation''', кој е во optional one-to-one релација со '''Appointment'''. Овој пристап овозможува да се избегнат null вредности во главниот ентитет и да се зачуваат дополнителни информации како причина, време и износ за рефундација. Промените на термините се следат преку ентитетот '''Reschedule Request''', кој е во one-to-many релација со '''Appointment'''. Ова овозможува чување на историја на сите обиди за промена на термин. Системот поддржува и механизам за оценување преку ентитетот '''Review''', кој е поврзан со customer, employee, business и appointment. На овој начин се гарантира дека секоја рецензија е валидна и поврзана со реална услуга, што спречува злоупотреби. Целиот модел е дизајниран со цел да обезбеди висока флексибилност, минимална редундантност и лесна прилагодливост за различни типови бизниси кои работат со закажување на услуги.