Changes between Initial Version and Version 1 of RelationalModel


Ignore:
Timestamp:
04/17/26 12:07:34 (2 weeks ago)
Author:
231113
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • RelationalModel

    v1 v1  
     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`, бидејќи цената на услугата може да се промени во иднина, но оригиналниот износ на кој е направено закажувањето мора да остане непроменет за потребите на фактурирањето.