Changes between Version 4 and Version 5 of RelationalModel


Ignore:
Timestamp:
06/10/26 12:58:51 (9 days ago)
Author:
231040
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • RelationalModel

    v4 v5  
    77== Дополнителен Опис
    88
    9 - Базата на податоци е поделена на неколку логички слоеви кои овозможуваат целосно управување со еден салон за убавина или мрежа од салони. Основниот слој го сочинуваат табелите `Company`, `Company_Location` и `Company_Category`, кои служат за дефинирање на бизнисите, нивните физички локации и дејности. Преку `Business_Hours` се дефинира работното време за секоја локација посебно.
     9* Базата на податоци е поделена на неколку логички слоеви кои овозможуваат целосно управување со еден салон или мрежа од салони. Основниот слој го сочинуваат табелите `Company`, `Company_Location` и `Company_Category`. Преку `Business_Hours` се дефинира работното време за секоја локација посебно.
    1010
    11 - Системот за корисници и авторизација е изграден врз табелата `User`, која се специјализира во три основни подтипови преку табелите `Client`, `Owner` и `Staff`.
    12     - Табелата `Staff_Type` (на пример: фризер, козметичар) го дефинира профилот на вработените, додека `Staff_Roles` овозможува еден вработен да има повеќе улоги во системот.
    13     - `Staff_Availability` и `Blocked_Time` се клучни за менаџирање на работниот календар, каде се чуваат информации за тоа кога вработениот е слободен за нови клиенти, а кога е на пауза или отсутен.
     11* Системот за корисници е изграден врз табелата `User`, со специјализирани подтипови преку табелите `Client`, `Owner` и `Staff`.
    1412
    15 - Делот за услуги и цени е дефиниран преку `Service` и `Service_Category`. За да се овозможи флексибилност, табелата `Staff_Service` ги поврзува вработените со услугите кои тие конкретно ги нудат. Посебно внимание е посветено на `Price_History`, која ги чува сите историски промени на цените за секоја услуга, овозможувајќи прецизни финансиски извештаи за минати периоди.
     13  * Табелата `Staff_Type` го дефинира профилот на вработените (на пример: фризер, козметичар), користејќи го енум типот `staff_role_type_enum`.
     14  * `Staff_Availability` и `Blocked_Time` се клучни за менаџирање на работниот календар, каде се чуваат периодите кога вработениот е достапен за закажување, како и периодите кога е отсутен или недостапен.
    1615
    17 - Процесот на закажување е централизиран во табелата `Appointment`, која ги поврзува клиентот, вработениот и локацијата. Состојбата на терминот се следи преку `Appointment_Status` (Scheduled, Completed, Cancelled). За потребите на пребарување во реално време, табелата `Time_Slot` генерира достапни термини врз основа на времетраењето на услугите дефинирани во `Appointment_Service`.
     16* Делот за услуги е дефиниран преку `Service` и `Service_Category`.
    1817
    19 - Финансискиот слој и лојалноста се опфатени преку:
    20     - `Invoice` и `Invoice_Item`: каде се генерираат финалните сметки по завршување на терминот, вклучувајќи ја и примената на `Promo_Code` за попусти.
    21     - `Inventory` и `Product_Usage`: овие табели овозможуваат следење на потрошните материјали (продукти) кои се трошат при извршување на одредена услуга во рамките на еден термин.
    22     - `Review`: им овозможува на клиентите да го оценат искуството од терминот, што директно влијае на рејтингот на салонот и вработените.
    23     - `Loyalty_Points` и `Loyalty_Transaction`: систем за наградување каде клиентите собираат поени со секое плаќање, кои подоцна можат да ги заменат за попусти.
     18  * Табелата `Staff_Service` ги поврзува вработените со услугите кои тие ги нудат.
     19  * `Service_Price_History` ги чува сите историски промени на цените, овозможувајќи точна пресметка и анализа на приходите за различни временски периоди.
    2420
    25 - Во табелите `Appointment_Service` и `Product_Usage` постојат специфични денормализации со цел побрзо пребарување. На пример, во `Appointment_Service` се чува `price_at_time`, бидејќи цената на услугата може да се промени во иднина, но оригиналниот износ на кој е направено закажувањето мора да остане непроменет за потребите на фактурирањето.
     21* Процесот на закажување е централизиран во табелата `Appointment`, каде се поврзуваат клиентите, вработените и локациите.
     22
     23  * Статусот на терминот е дефиниран преку `appointment_status_enum`.
     24  * За потребите на пребарување на слободни термини, табелата `Staff_Time_Slot` овозможува прецизно планирање врз основа на времетраењето на услугите и расположливоста на вработените.
     25
     26* Финансискиот слој и лојалноста се опфатени преку:
     27
     28  * `Invoice`, каде се генерира финалната сметка за терминот, вклучувајќи ја и примената на `Promo_Code`.
     29  * `Inventory` и `Appointment_Product`, кои овозможуваат следење на продуктите и потрошните материјали употребени за време на терминот, како и управување со залихите.
     30  * `Review`, која им овозможува на клиентите да го оценат искуството и квалитетот на услугата.
     31  * `Loyalty_Transaction`, која претставува систем за следење на движењето на поените кај клиентите, без разлика дали тие се заработени или искористени.
     32
     33* Во табелите `Appointment_Service` и `Appointment_Product` постои контролирана денормализација со цел зачувување на историски точни податоци за фактурирање. Во нив се чуваат цените и количините кои важеле во моментот на креирање на терминот, бидејќи оригиналните вредности мора да останат непроменети дури и ако цените на услугите или продуктите се изменат во иднина.