| 42 | | === |
| | 56 | == Извештај 2: Профил на макронутриенти по порција |
| | 57 | //Health Stat Check// |
| | 58 | === Опис на барањата за податоци |
| | 59 | Протеини, јаглехидрати, масти и влакна во една порција од секој рецепт. |
| | 60 | Спојува две одделни M:N врски во еден нутритивен приказ: рецепт содржи состојки, а состојка содржи нутриенти. За секој рецепт пресметува колку грама од секој макронутриент дава една порција, и ги рангира рецептите по протеини. |
| | 61 | * (нутриент на 100 g) × (употребени грамови) / 100 преку сите состојки, поделен со бројот на порции. |
| | 62 | === SQL - приказ |
| | 63 | {{{ |
| | 64 | SELECT r.name AS recipe, |
| | 65 | ROUND(r.kcal_sum / r.servings) AS kcal_per_portion, |
| | 66 | ROUND(SUM(CASE WHEN n.description = 'Protein' |
| | 67 | THEN icn.quantity * rci.ingredient_quantity / 100 |
| | 68 | END) / r.servings, 1) AS protein_g, |
| | 69 | ROUND(SUM(CASE WHEN n.description = 'Total carbohydrate' |
| | 70 | THEN icn.quantity * rci.ingredient_quantity / 100 |
| | 71 | END) / r.servings, 1) AS carbs_g, |
| | 72 | ROUND(SUM(CASE WHEN n.description = 'Total fat' |
| | 73 | THEN icn.quantity * rci.ingredient_quantity / 100 |
| | 74 | END) / r.servings, 1) AS fat_g, |
| | 75 | ROUND(SUM(CASE WHEN n.description = 'Dietary fibre' |
| | 76 | THEN icn.quantity * rci.ingredient_quantity / 100 |
| | 77 | END) / r.servings, 1) AS fibre_g |
| | 78 | FROM recipe r |
| | 79 | JOIN recipe_contains_ingredient rci ON rci.recipe_id = r.id |
| | 80 | JOIN ingredient_contains_nutrient icn ON icn.ingredient_id = rci.ingredient_id |
| | 81 | JOIN nutrient n ON n.id = icn.nutrient_id |
| | 82 | WHERE n.type = 'macro' |
| | 83 | GROUP BY r.id, r.name, r.kcal_sum, r.servings |
| | 84 | ORDER BY protein_g DESC; |
| | 85 | }}} |
| | 86 | === Релациона алгебра - приказ |
| | 87 | {{{ |
| | 88 | amount ≡ icn.quantity · rci.ingredient_quantity / 100 |
| | 89 | |
| | 90 | τ_{protein_g DESC} ( |
| | 91 | γ_{r.id, r.name, r.kcal_sum, r.servings; |
| | 92 | SUM(amount | n.description = 'Protein') / r.servings → protein_g, |
| | 93 | SUM(amount | n.description = 'Total carbohydrate') / r.servings → carbs_g, |
| | 94 | SUM(amount | n.description = 'Total fat') / r.servings → fat_g, |
| | 95 | SUM(amount | n.description = 'Dietary fibre') / r.servings → fibre_g} ( |
| | 96 | σ_{n.type = 'macro'} ( |
| | 97 | Recipe |
| | 98 | ⋈_{r.id = rci.recipe_id} Recipe_Contains_Ingredient |
| | 99 | ⋈_{rci.ingredient_id = icn.ingredient_id} Ingredient_Contains_Nutrient |
| | 100 | ⋈_{icn.nutrient_id = n.id} Nutrient |
| | 101 | ) |
| | 102 | ) |
| | 103 | ) |
| | 104 | }}} |
| | 105 | == Извештај 3: Целосно растителни рецепти |
| | 106 | |
| | 107 | === Опис на барањата за податоци |
| | 108 | === SQL - приказ |
| | 109 | === Релациона алгебра - приказ |
| | 110 | |
| | 111 | == Извештај 4: Ден со најголем внес по корисник |
| | 112 | |
| | 113 | === Опис на барањата за податоци |
| | 114 | === SQL - приказ |
| | 115 | === Релациона алгебра - приказ |
| | 116 | |
| | 117 | |