Changes between Version 9 and Version 10 of RelationalDesign


Ignore:
Timestamp:
02/26/26 10:43:26 (3 weeks ago)
Author:
202033
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • RelationalDesign

    v9 v10  
    1 == Релациска шема со мапирачка трансформација 
     1== Релациска шема со мапирачка трансформација
    22
    33* Примарни клучеви означени со underline
    44* Надворешни клучеви означени со * и табела кон која покажува
    55* Not null атрибути означени со bold
    6 User (__**user_id**__, **full_name**, **email**, **phone**, **created_at**)
    76
    8 Role (__**role_id**__, **name**)
     7User (__**user_id**__, **full_name**, **email UNIQUE**, **phone**, **created_at**, **password_hash**)
    98
    10 Category (__**category_id**__, **name**)
     9Role (__**role_id**__, **name UNIQUE**)
    1110
    12 Status (__**status_id**__, **name**)
     11Category (__**category_id**__, **name UNIQUE**)
     12
     13Status (__**status_id**__, **name UNIQUE**)
    1314
    1415Service (__**service_id**__, **name**, **price**, **duration_minutes**, **category_id*(Category)**)
    1516
    16 Package (__**package_id**__, **name**, **max_usage**)
     17Package (__**package_id**__, **name**, **max_usage**, **total_price**)
    1718
    18 Review (__**review_id**__, rating, comment, created_at, **payment_id*(Payment) UNIQUE**)
     19Review (__**review_id**__, **rating**, comment, **created_at**, **payment_id*(Payment) UNIQUE**)
    1920
    20 Appointment (__**appointment_id**__, **appointment_time**, **end_time**, notes, **type enum('pre-booked','walk-in')**, **total_price**, **user_id*(User)**, **status_id*(Status)**)
     21Appointment (__**appointment_id**__, **appointment_time**, **end_time**, notes, **type enum('pre-booked','walk-in')**, **total_price**, **user_id*(User)**, **status_id*(Status)**, **points_awarded**)
    2122
    22 LoyaltyCard (__**card_id**__, **points**, user_id*(User))
     23LoyaltyCard (__**card_id**__, **points**, **user_id*(User) UNIQUE**)
    2324
    24 Payment (__**payment_id**__, **amount**, **method**, **timestamp**, **status**, **appointment_id*(Appointment)**, points_used)
     25Payment (__**payment_id**__, **amount**, **method**, **timestamp**, **status**, appointment_id*(Appointment), **points_used**, package_purchase_id*(UserPackagePurchase))
    2526
    2627UserRole (__**user_id*(User)**__, __**role_id*(Role)**__)
    2728
    28 PackageService (__**package_id*(Package)**__, __**service_id*(Service)**__, discounted_price)
     29PackageService (__**package_id*(Package)**__, __**service_id*(Service)**__, **discounted_price**)
    2930
    3031AppointmentService (__**appointment_id*(Appointment)**__, __**service_id*(Service)**__)
    3132
    32 Availability (__**availability_id__**, __**date__**, __**start_time__**, __**end_time__**, __**is_closed__**)
     33Availability (__**availability_id**__, **date**, **start_time**, **end_time**, **is_closed**)
    3334
    34 UserPackagePurchase (__**purchase_id__**, *user_id(User), __***package_id(Package)__**,__**purchased_at__**, __**total_uses__**, __**remaining_uses__**, __**status__**, expires_at)
     35UserPackagePurchase (__**purchase_id**__, **user_id*(User)**, **package_id*(Package)**, **purchased_at**, **total_uses**, **remaining_uses**, **status**, expires_at)
    3536
    3637AppointmentPackageUsage (__**appointment_id*(Appointment)**__, **purchase_id*(UserPackagePurchase)**, **service_id*(Service)**, **used_units**, finalized_at)