wiki:DatabaseProgramming

Version 4 (modified by 231049, 7 days ago) ( diff )

--

DatabaseProgrammin: MajStore

Функции, процедури и тригери

1. fn_insert_premium_worker

Овој тригер се активира кога статусот на Payment ќе се промени во "Completed". Во тој момент автоматски се креира нов запис во табелата Premium_Worker, со кој се означува дека работникот од тој момент станува премиум корисник.

2. fn_is_worker_premium(p_worker_id int)

Оваа функција се користи како проверка за тоа дали даден работник моментално има активен премиум статус. Таа може да се повикува од frontend или backend логиката, на пример при прикажување на профил, реклами, premium badge или други содржини поврзани со работникот. Бидејќи оваа проверка би се користела често низ системот, логиката е издвоена во посебна функција со цел да се избегне дуплирање на код.

3. fn_notify_worker_premium_start()

Овој тригер се активира кога во табелата Premium_Worker ќе се додаде нов запис, односно кога на работникот му започнува премиум претплатата. Во тој момент автоматски се креира запис во табелата Notification, со кој корисникот се известува дека неговиот премиум статус е успешно активиран. Во известувањето се вклучени името на избраниот премиум план и датумот до кога истиот важи.

4. prevent_review_without_hire()

Овој тригер се активира при обид на корисник да додаде рецензија за работник. Неговата цел е да спречи креирање рецензии во случаи кога не постои реална соработка помеѓу корисникот и работникот, т.е тригерот проверува дали постои пост од дадениот корисник, во кој пост од работникот има статус "Accepted". Доколку таков случај не постои, внесувањето на рецензија се спречува.

5. block_application_to_closed_post()

Овој тригер се активира при обид за внесување нова апликација за работа. Неговата цел е да спречи работниците да аплицираат на постови кои повеќе не се активни. При извршувањето, тригерот го проверува статусот на постот на кој се однесува апликацијата. Доколку постот не постои, се генерира соодветна грешка. Доколку постот постои, но неговиот статус не е "Active", внесувањето на апликацијата се спречува и се прикажува соодветна порака.

6. prevent_duplicate_application()

Овој тригер се активира при обид за креирање нова апликација од страна на работник. Неговата цел е да спречи дуплирање на апликации за ист пост од ист работник. При секое внесување, тригерот проверува дали веќе постои апликација за истиот worker_id и post_id која се уште е активна Доколку таква апликација постои, се генерира грешка и новиот запис се спречува.

7. fn_auto_create_calendar()

Бидејќи во системот секој работник си има свој календар, при креирање на нов работник за истиот автоматски се креира и календар со овој тригер.

8. fn_auto_create_notification()

Овој тригер исто така се однесува на автоматско креирање нотификации, но со фокус на апликациите на мајсторите. Истиот се активира при промена на статусот на апликација.

9. fn_auto_reject_pending_applications()

Овој тригер се активира при промена на статусот на пост. Неговата цел е автоматски да ги ажурира сите активни апликации кога постот се означува како завршен, т.е тригерот проверува дали статусот на постот се менува во "Completed". Во тој случај, системот автоматски ги пронаоѓа сите апликации за тој пост кои се во статус "Pending" и нивниот статус го менува во „Rejected“.

10. fn_auto_complete_post_on_accept()

Овој тригер се активира при промена на статусот на апликација. Неговата цел е автоматски да го ажурира статусот на постот кога работник ќе биде прифатен, т.е кога статусот на апликацијата ќе се промени во "Accepted", системот автоматски го означува поврзаниот пост како "Completed".

Скрипта за креирање погледи

https://develop.finki.ukim.mk/projects/MajStore/attachment/wiki/DatabaseProgramming/MajStore_Triggers_Functions_Procedures.sql

Attachments (1)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.