Changes between Version 18 and Version 19 of ReportsProcedures


Ignore:
Timestamp:
09/30/25 14:09:18 (3 weeks ago)
Author:
223075
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ReportsProcedures

    v18 v19  
    181181Објаснување:
    182182Повикот book_class() се извршува во транскација. BEFORE INSERT тригерот блокира преполнување (ако нема слободни места, CLASS_FULL), а AFTER INSERT/DELETE тригерите го одржуваат seats_available. Излезот погоре докажува: успешна резервација, потоа две одбиени резервации (полн час), и на крај бришење што ја зголемува променливата seats_available за +1.
     183
     184
     185= Процедури и тригери (Stored Procedures & Triggers) =
     186
     187== Што додадовме ==
     188* Погледи: vw_user_spend, vw_class_utilization, vw_training_pop_monthly
     189* Тригери: BEFORE INSERT guard, AFTER INSERT/DELETE на "User_Booked_Class" (одржуваат seats_available)
     190* Складирана функција: book_class(user_id, class_id)
     191* Индекси (од страната Оптимизација)
     192
     193== Скрипта ==
     194Целиот SQL е во `backend/sql/blisscore_enhancements.sql` и содржи:
     195- 3x CREATE VIEW (vw_user_spend, vw_class_utilization, vw_training_pop_monthly)
     196- 3x CREATE FUNCTION за тригерите (guard/decrement/increment)
     197- 3x CREATE TRIGGER за "User_Booked_Class"
     198- CREATE FUNCTION book_class(p_user_id BIGINT, p_class_id BIGINT) RETURNS text
     199- Индекси
     200