Merge branch 'master' of https://github.com/H4CK3R-01/Datenbanken
This commit is contained in:
commit
dd6c41e0f0
@ -10,4 +10,52 @@ Wird dabei gegen Vorgaben (Kalorienvorgaben, vegetarisch, Allergene, etc.) verst
|
|||||||
soll das in der Sicht angezeigt werden. Wenn der Tag „ok“ ist, soll das markiert werden,
|
soll das in der Sicht angezeigt werden. Wenn der Tag „ok“ ist, soll das markiert werden,
|
||||||
ansonsten soll angezeigt werden, gegen was verstoßen wurde.
|
ansonsten soll angezeigt werden, gegen was verstoßen wurde.
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
Rechtekonzept:
|
||||||
|
Als normaler Benutzer sollte man nur Zugriff auf seine eigenen Daten haben.
|
||||||
|
Als privilegierter Nutzer (z.B. Admin) kann man alle Daten sehen
|
||||||
*/
|
*/
|
||||||
|
DROP VIEW IF EXISTS Menu_Naehrwerte;
|
||||||
|
CREATE VIEW Menu_Naehrwerte AS
|
||||||
|
(
|
||||||
|
SELECT Menuname,
|
||||||
|
GROUP_CONCAT(DISTINCT Produktname SEPARATOR ', ') AS 'Produkte',
|
||||||
|
ROUND(SUM(Fett * (SELECT Menge FROM Menge WHERE MengenID = M.MengenID) / 100), 2) AS 'Fett',
|
||||||
|
ROUND(SUM(Kohlenhydrate * (SELECT Menge FROM Menge WHERE MengenID = M.MengenID) / 100), 2) AS 'Kohlenhydrate',
|
||||||
|
ROUND(SUM(Eiweiss * (SELECT Menge FROM Menge WHERE MengenID = M.MengenID) / 100), 2) AS 'Eiweiss',
|
||||||
|
ROUND(SUM(Brennwert * (SELECT Menge FROM Menge WHERE MengenID = M.MengenID) / 100), 2) AS 'Brennwert',
|
||||||
|
GROUP_CONCAT(DISTINCT Allergenbezeichnung SEPARATOR ', ') AS 'Allergene',
|
||||||
|
GROUP_CONCAT(DISTINCT E_Nummer SEPARATOR ', ') AS 'Zusatzstoff'
|
||||||
|
FROM Menu
|
||||||
|
JOIN Menucontent M on Menu.MenuID = M.MenuID
|
||||||
|
JOIN Menge M3 on M.MengenID = M3.MengenID
|
||||||
|
JOIN Produkt P on M3.ProduktID = P.ProduktID
|
||||||
|
JOIN Naehrwerte N on P.ProduktID = N.ProduktID
|
||||||
|
|
||||||
|
JOIN enthaeltAllergen eA on P.ProduktID = eA.ProduktID
|
||||||
|
JOIN Allergen A on A.AllergenID = eA.AllergenID
|
||||||
|
|
||||||
|
LEFT JOIN enthaeltZusatzstoff eZ on P.ProduktID = eZ.ProduktID
|
||||||
|
GROUP BY Menuname);
|
||||||
|
|
||||||
|
|
||||||
|
# TODO Compare Menu_Naehrwerte.Allergene and Menu_Naehrwerte.Zusatzstoff with Allergie and Zusatzstoffunverträglichkeit
|
||||||
|
DROP VIEW IF EXISTS Aufgabe_5;
|
||||||
|
CREATE VIEW Aufgabe_5 AS
|
||||||
|
(
|
||||||
|
SELECT Personenvorname,
|
||||||
|
Personenname,
|
||||||
|
Naehrwertziel,
|
||||||
|
MN.Brennwert,
|
||||||
|
CONCAT(MN.Brennwert / Naehrwertziel * 100, '%') AS Naehrwertziel_Prozent,
|
||||||
|
MN.Fett,
|
||||||
|
MN.Kohlenhydrate,
|
||||||
|
MN.Eiweiss,
|
||||||
|
IF(MN.Brennwert / Naehrwertziel * 100 <= 100, 'OK', 'Naehrwertziel überschritten') AS Naehrwert_OK,
|
||||||
|
M.Menuname,
|
||||||
|
Allergene,
|
||||||
|
Zusatzstoff
|
||||||
|
FROM konsumiert
|
||||||
|
JOIN Menu M on M.MenuID = konsumiert.MenuID
|
||||||
|
JOIN Person P on P.PersonID = konsumiert.PersonID
|
||||||
|
JOIN Menu_Naehrwerte MN on M.Menuname = MN.Menuname);
|
||||||
|
Loading…
Reference in New Issue
Block a user