| | 1 | = Релационен модел |
| | 2 | |
| | 3 | == ЕР Дијаграм |
| | 4 | |
| | 5 | [[Image(RelationalModel.jpg, 1400px)]] |
| | 6 | |
| | 7 | == Дополнителен Опис |
| | 8 | |
| | 9 | - Базата на податоци е поделена на неколку логички слоеви кои овозможуваат целосно управување со еден салон за убавина или мрежа од салони. Основниот слој го сочинуваат табелите `Company`, `Company_Location` и `Company_Category`, кои служат за дефинирање на бизнисите, нивните физички локации и дејности. Преку `Business_Hours` се дефинира работното време за секоја локација посебно. |
| | 10 | |
| | 11 | - Системот за корисници и авторизација е изграден врз табелата `User`, која се специјализира во три основни подтипови преку табелите `Client`, `Owner` и `Staff`. |
| | 12 | - Табелата `Staff_Type` (на пример: фризер, козметичар) го дефинира профилот на вработените, додека `Staff_Roles` овозможува еден вработен да има повеќе улоги во системот. |
| | 13 | - `Staff_Availability` и `Blocked_Time` се клучни за менаџирање на работниот календар, каде се чуваат информации за тоа кога вработениот е слободен за нови клиенти, а кога е на пауза или отсутен. |
| | 14 | |
| | 15 | - Делот за услуги и цени е дефиниран преку `Service` и `Service_Category`. За да се овозможи флексибилност, табелата `Staff_Service` ги поврзува вработените со услугите кои тие конкретно ги нудат. Посебно внимание е посветено на `Price_History`, која ги чува сите историски промени на цените за секоја услуга, овозможувајќи прецизни финансиски извештаи за минати периоди. |
| | 16 | |
| | 17 | - Процесот на закажување е централизиран во табелата `Appointment`, која ги поврзува клиентот, вработениот и локацијата. Состојбата на терминот се следи преку `Appointment_Status` (Scheduled, Completed, Cancelled). За потребите на пребарување во реално време, табелата `Time_Slot` генерира достапни термини врз основа на времетраењето на услугите дефинирани во `Appointment_Service`. |
| | 18 | |
| | 19 | - Финансискиот слој и лојалноста се опфатени преку: |
| | 20 | - `Invoice` и `Invoice_Item`: каде се генерираат финалните сметки по завршување на терминот, вклучувајќи ја и примената на `Promo_Code` за попусти. |
| | 21 | - `Inventory` и `Product_Usage`: овие табели овозможуваат следење на потрошните материјали (продукти) кои се трошат при извршување на одредена услуга во рамките на еден термин. |
| | 22 | - `Review`: им овозможува на клиентите да го оценат искуството од терминот, што директно влијае на рејтингот на салонот и вработените. |
| | 23 | - `Loyalty_Points` и `Loyalty_Transaction`: систем за наградување каде клиентите собираат поени со секое плаќање, кои подоцна можат да ги заменат за попусти. |
| | 24 | |
| | 25 | - Во табелите `Appointment_Service` и `Product_Usage` постојат специфични денормализации со цел побрзо пребарување. На пример, во `Appointment_Service` се чува `price_at_time`, бидејќи цената на услугата може да се промени во иднина, но оригиналниот износ на кој е направено закажувањето мора да остане непроменет за потребите на фактурирањето. |