= Релационен модел == ЕР Дијаграм [[Image(BeautyBook.jpg, 1400px)]] == Дополнителен Опис - Базата на податоци е поделена на неколку логички слоеви кои овозможуваат целосно управување со еден салон за убавина или мрежа од салони. Основниот слој го сочинуваат табелите `Company`, `Company_Location` и `Company_Category`, кои служат за дефинирање на бизнисите, нивните физички локации и дејности. Преку `Business_Hours` се дефинира работното време за секоја локација посебно. - Системот за корисници и авторизација е изграден врз табелата `User`, која се специјализира во три основни подтипови преку табелите `Client`, `Owner` и `Staff`. - Табелата `Staff_Type` (на пример: фризер, козметичар) го дефинира профилот на вработените, додека `Staff_Roles` овозможува еден вработен да има повеќе улоги во системот. - `Staff_Availability` и `Blocked_Time` се клучни за менаџирање на работниот календар, каде се чуваат информации за тоа кога вработениот е слободен за нови клиенти, а кога е на пауза или отсутен. - Делот за услуги и цени е дефиниран преку `Service` и `Service_Category`. За да се овозможи флексибилност, табелата `Staff_Service` ги поврзува вработените со услугите кои тие конкретно ги нудат. Посебно внимание е посветено на `Price_History`, која ги чува сите историски промени на цените за секоја услуга, овозможувајќи прецизни финансиски извештаи за минати периоди. - Процесот на закажување е централизиран во табелата `Appointment`, која ги поврзува клиентот, вработениот и локацијата. Состојбата на терминот се следи преку `Appointment_Status` (Scheduled, Completed, Cancelled). За потребите на пребарување во реално време, табелата `Time_Slot` генерира достапни термини врз основа на времетраењето на услугите дефинирани во `Appointment_Service`. - Финансискиот слој и лојалноста се опфатени преку: - `Invoice` и `Invoice_Item`: каде се генерираат финалните сметки по завршување на терминот, вклучувајќи ја и примената на `Promo_Code` за попусти. - `Inventory` и `Product_Usage`: овие табели овозможуваат следење на потрошните материјали (продукти) кои се трошат при извршување на одредена услуга во рамките на еден термин. - `Review`: им овозможува на клиентите да го оценат искуството од терминот, што директно влијае на рејтингот на салонот и вработените. - `Loyalty_Points` и `Loyalty_Transaction`: систем за наградување каде клиентите собираат поени со секое плаќање, кои подоцна можат да ги заменат за попусти. - Во табелите `Appointment_Service` и `Product_Usage` постојат специфични денормализации со цел побрзо пребарување. На пример, во `Appointment_Service` се чува `price_at_time`, бидејќи цената на услугата може да се промени во иднина, но оригиналниот износ на кој е направено закажувањето мора да остане непроменет за потребите на фактурирањето.