== Релациска шема со мапирачка трансформација * Примарни клучеви означени со underline * Надворешни клучеви означени со * и табела кон која покажува * Not null атрибути означени со bold User (__**user_id**__, **full_name**, **email UNIQUE**, **phone**, **created_at**, **password_hash**) Role (__**role_id**__, **name UNIQUE**) Category (__**category_id**__, **name UNIQUE**) Status (__**status_id**__, **name UNIQUE**) Service (__**service_id**__, **name**, **price**, **duration_minutes**, **category_id*(Category)**) Package (__**package_id**__, **name**, **max_usage**, **total_price**) Review (__**review_id**__, **rating**, comment, **created_at**, **payment_id*(Payment) UNIQUE**) Appointment (__**appointment_id**__, **appointment_time**, **end_time**, notes, **type enum('pre-booked','walk-in')**, **total_price**, **user_id*(User)**, **status_id*(Status)**, **points_awarded**) LoyaltyCard (__**card_id**__, **points**, **user_id*(User) UNIQUE**) Payment (__**payment_id**__, **amount**, **method**, **timestamp**, **status**, appointment_id*(Appointment), **points_used**, package_purchase_id*(UserPackagePurchase)) UserRole (__**user_id*(User)**__, __**role_id*(Role)**__) PackageService (__**package_id*(Package)**__, __**service_id*(Service)**__, **discounted_price**) AppointmentService (__**appointment_id*(Appointment)**__, __**service_id*(Service)**__) Availability (__**availability_id**__, **date**, **start_time**, **end_time**, **is_closed**) UserPackagePurchase (__**purchase_id**__, **user_id*(User)**, **package_id*(Package)**, **purchased_at**, **total_uses**, **remaining_uses**, **status**, expires_at) AppointmentPackageUsage (__**appointment_id*(Appointment)**__, **purchase_id*(UserPackagePurchase)**, **service_id*(Service)**, **used_units**, finalized_at) == DDL скрипта за бришење на табелите и креирање на табелите [attachment:schema_creation.sql] == DML скрипта за полнење на табелите со податоци [attachment:data_load.sql] == Релациски дијаграм изваден од DBeaver [[Image(diagra.jpeg, width=800px)]]