| Version 2 (modified by , 14 hours ago) ( diff ) |
|---|
Функции, Процедури и Тригери
Функции
Во системот се имплементирани функции кои се користат за пресметка на статистички податоци и добивање информации поврзани со рецепти и форум објави.
get_forumpost_comments_count
Ја враќа вкупната бројка на коментари за одреден форум пост.
- Влезен параметар:
p_forumpost_id - Излез: број на коментари
get_forumpost_likes_count
Ја враќа вкупната бројка на лајкови за одреден форум пост.
- Влезен параметар:
p_forumpost_id - Излез: број на лајкови
get_total_recipes_by_cuisine
Го пресметува бројот на рецепти за избран тип на кујна.
- Влезен параметар:
p_cuisine_id - Излез: број на рецепти
get_total_recipes_by_category
Го пресметува бројот на рецепти во дадена категорија.
- Влезен параметар:
p_category_id - Излез: број на рецепти
is_quick_recipe
Проверува дали рецептот може да се подготви за најмногу 30 минути.
- Влезен параметар:
p_recipe_id - Излез: TRUE/FALSE
Процедури
Процедурите се користат за централизирано извршување на бизнис логиката и заштита на интегритетот на податоците.
add_recipe_review
Овозможува додавање рецензија за рецепт.
Пред внесување се проверува:
- дали корисникот го има пробано рецептот
- дали веќе има оставено рецензија
- дали оцената е во дозволени граници (1-5)
add_forum_comment
Додава нов коментар на форум пост.
Се проверува:
- дали содржината не е празна
- дали форум постот постои
add_recipe_to_favorites
Додава рецепт во листата на омилени рецепти на корисникот.
Се спречува двојно додавање на ист рецепт.
add_recipe_attempt
Евидентира дека корисникот го има подготвено рецептот.
Се спречува повеќекратно означување на истиот рецепт.
remove_recipe_from_favorites
Го отстранува рецептот од листата на омилени рецепти.
delete_forum_comment
Овозможува бришење на форум коментар.
Пред бришење се проверува дали коментарот постои.
add_recipe_dislike
Додава dislike на рецепт.
Се спречува повеќекратно додавање dislike од ист корисник.
remove_recipe_dislike
Го отстранува претходно додадениот dislike.
add_forumpost_like
Додава like на форум пост.
Се спречува двојно лајкнување на ист пост од ист корисник.
Тригери
Тригерите автоматски се активираат при INSERT операции и обезбедуваат автоматско пополнување на временски ознаки.
trg_set_comment_created_at
Табела: forumpost_comment
Автоматски го поставува полето created_at при креирање на нов коментар доколку вредноста не е внесена.
trg_set_forumpost_created_at
Табела: forumpost
Автоматски го поставува полето created_at при креирање на нов форум пост доколку вредноста не е внесена.
trg_set_recipe_attempt_time
Табела: recipe_attempt
Автоматски го поставува времето на подготовка во полето attempted_at при внесување нов запис.
Заклучок
Во системот се имплементирани:
- 5 кориснички функции
- 9 процедури
- 3 тригери
Овие механизми овозможуваат централизирано извршување на бизнис логиката, автоматско пополнување на временски ознаки, спречување на дупликати и одржување на интегритетот на податоците во базата.
