Hallo Leute,
ich möchte gerne ein Rezeptbuch schreiben welches anhand von Daten aus drei Tabellen die Rezeptvorschläge ertsellt.
In der ersten Tabelle stehen meine Rezepte mit den dazugehörigen Daten wie: ID, Name, Beschreibung, ...
In der zweiten Tabelle stehen die im Bestand vorhandene Produkte mit den Daten:
ProduktId, Produktname, vorhandene Menge (in Gramm).
In der dritten Tabelle stehen die Rezeptzutaten in Form von: RezeptId, ProduktId,
benötigte Menge (in Gramm).
Es werden pro Rezept mehrere Zeilen in der Zutaten Tabelle abgelegt.
Unser Problem besteht darin, das wir REZEPTE auswählen möchten, dessen ALLE Zutaten
vorhanden sind und von der Menge zum Zubereiten ausreichen. Also alle Zutaten, die in diesem Rezept vorkommen und
nicht ALLE überhaupt.
Schwierigkeit dabei ist, dass wir vorab nicht wissen, wie viele Zutaten ein Rezept hat (oder soll ich diese Info zusätzlich beim Rezept speichern? -> Datenredundanz!)
CREATE TABLE produkte (
1nprodukt_id SMALLINT NOT NULL,
1ngewicht SMALLINT NOT NULL);
INSERT INTO produkte (1nprodukt_id, 1ngewicht)
VALUES
( 17, 800),
( 45, 100),
( 48, 90),
( 79, 500),
( 53, 50),
( 44, 80),
( 36, 50),
( 94, 20),
( 90, 150),
( 82, 400),
( 62, 200),
( 62, 150),
( 9, 80),
(149, 80),
(112, 300),
(112, 250),
(124, 80),
(146, 80),
(148, 80),
(101, 10);
CREATE TABLE rezeptbuch (
6nrezept_id SMALLINT NOT NULL,
6cname VARCHAR2(40) NOT NULL);
INSERT INTO rezeptbuch (6nrezept_id, 6cname)
VALUES
( 1, '3 Minuten Brot'),
( 2, 'Bagels'),
( 3, 'Birnenkuchen'),
( 4, 'Kirschkuchen'),
( 5, 'Krümelkuchen'),
( 6, 'Apfel-Lachsragout'),
( 7, 'Fisch nach Art von Spetses'),
( 8, 'Karpfen nach Dresdner Art'),
( 9, 'Karpfen');
CREATE TABLE rezeptbestand (
3nrezept_id SMALLINT NOT NULL,
3nprodukt_id SMALLINT NOT NULL,
3nmenge SMALLINT NOT NULL);
INSERT INTO rezeptbestand (3nrezept_id, 3nprodukt_id, 3nmenge)
VALUES
( 1, 149, 20),
( 1, 112, 500),
( 1, 101, 6),
( 1, 90, 24),
( 2, 112, 60),
( 2, 149, 60),
( 2, 124, 50),
( 2, 9, 60),
( 2, 146, 60),
( 2, 101, 1),
( 2, 148, 10),
( 3, 9, 33),
( 3, 146, 41),
( 3, 112, 45),
( 3, 147, 1),
( 3, 124, 6),
( 3, 148, 50),
( 3, 131, 100),
( 3, 135, 10),
( 3, 143, 50),
( 4, 132, 60),
( 4, 148, 20),
( 4, 126, 25),
( 4, 115, 16),
( 4, 146, 4),
( 4, 105, 1),
( 4, 151, 4),
( 5, 151, 50),
( 5, 112, 200),
( 5, 147, 3),
( 5, 148, 70),
( 5, 146, 150),
( 5, 10, 150),
( 5, 129, 500),
( 6, 18, 200),
( 6, 135, 40),
( 6, 129, 80),
( 6, 60, 20),
( 6, 9, 10),
( 6, 126, 50),
( 6, 52, 10),
( 7, 17, 250),
( 7, 57, 150),
( 7, 135, 10),
( 7, 103, 5),
( 7, 43, 5),
( 7, 94, 5),
( 7, 13, 16),
( 8, 17, 200),
( 8, 45, 80),
( 8, 48, 80),
( 8, 79, 100),
( 9, 17, 100),
( 9, 45, 20),
( 9, 53, 3),
( 9, 44, 3),
( 9, 36, 10),
( 9, 48, 10),
( 9, 94, 10),
( 9, 90, 6),
( 9, 82, 7),
( 9, 62, 7),
( 9, 9, 1);
Der Datenbestand ist so aufgebaut, dass die Rezepte Nr. 1, 2, 8, 9 alles nötige zum Zubereiten haben.
Benötige dringend HILFEEE !
ich möchte gerne ein Rezeptbuch schreiben welches anhand von Daten aus drei Tabellen die Rezeptvorschläge ertsellt.
In der ersten Tabelle stehen meine Rezepte mit den dazugehörigen Daten wie: ID, Name, Beschreibung, ...
In der zweiten Tabelle stehen die im Bestand vorhandene Produkte mit den Daten:
ProduktId, Produktname, vorhandene Menge (in Gramm).
In der dritten Tabelle stehen die Rezeptzutaten in Form von: RezeptId, ProduktId,
benötigte Menge (in Gramm).
Es werden pro Rezept mehrere Zeilen in der Zutaten Tabelle abgelegt.
Unser Problem besteht darin, das wir REZEPTE auswählen möchten, dessen ALLE Zutaten
vorhanden sind und von der Menge zum Zubereiten ausreichen. Also alle Zutaten, die in diesem Rezept vorkommen und
nicht ALLE überhaupt.
Schwierigkeit dabei ist, dass wir vorab nicht wissen, wie viele Zutaten ein Rezept hat (oder soll ich diese Info zusätzlich beim Rezept speichern? -> Datenredundanz!)
CREATE TABLE produkte (
1nprodukt_id SMALLINT NOT NULL,
1ngewicht SMALLINT NOT NULL);
INSERT INTO produkte (1nprodukt_id, 1ngewicht)
VALUES
( 17, 800),
( 45, 100),
( 48, 90),
( 79, 500),
( 53, 50),
( 44, 80),
( 36, 50),
( 94, 20),
( 90, 150),
( 82, 400),
( 62, 200),
( 62, 150),
( 9, 80),
(149, 80),
(112, 300),
(112, 250),
(124, 80),
(146, 80),
(148, 80),
(101, 10);
CREATE TABLE rezeptbuch (
6nrezept_id SMALLINT NOT NULL,
6cname VARCHAR2(40) NOT NULL);
INSERT INTO rezeptbuch (6nrezept_id, 6cname)
VALUES
( 1, '3 Minuten Brot'),
( 2, 'Bagels'),
( 3, 'Birnenkuchen'),
( 4, 'Kirschkuchen'),
( 5, 'Krümelkuchen'),
( 6, 'Apfel-Lachsragout'),
( 7, 'Fisch nach Art von Spetses'),
( 8, 'Karpfen nach Dresdner Art'),
( 9, 'Karpfen');
CREATE TABLE rezeptbestand (
3nrezept_id SMALLINT NOT NULL,
3nprodukt_id SMALLINT NOT NULL,
3nmenge SMALLINT NOT NULL);
INSERT INTO rezeptbestand (3nrezept_id, 3nprodukt_id, 3nmenge)
VALUES
( 1, 149, 20),
( 1, 112, 500),
( 1, 101, 6),
( 1, 90, 24),
( 2, 112, 60),
( 2, 149, 60),
( 2, 124, 50),
( 2, 9, 60),
( 2, 146, 60),
( 2, 101, 1),
( 2, 148, 10),
( 3, 9, 33),
( 3, 146, 41),
( 3, 112, 45),
( 3, 147, 1),
( 3, 124, 6),
( 3, 148, 50),
( 3, 131, 100),
( 3, 135, 10),
( 3, 143, 50),
( 4, 132, 60),
( 4, 148, 20),
( 4, 126, 25),
( 4, 115, 16),
( 4, 146, 4),
( 4, 105, 1),
( 4, 151, 4),
( 5, 151, 50),
( 5, 112, 200),
( 5, 147, 3),
( 5, 148, 70),
( 5, 146, 150),
( 5, 10, 150),
( 5, 129, 500),
( 6, 18, 200),
( 6, 135, 40),
( 6, 129, 80),
( 6, 60, 20),
( 6, 9, 10),
( 6, 126, 50),
( 6, 52, 10),
( 7, 17, 250),
( 7, 57, 150),
( 7, 135, 10),
( 7, 103, 5),
( 7, 43, 5),
( 7, 94, 5),
( 7, 13, 16),
( 8, 17, 200),
( 8, 45, 80),
( 8, 48, 80),
( 8, 79, 100),
( 9, 17, 100),
( 9, 45, 20),
( 9, 53, 3),
( 9, 44, 3),
( 9, 36, 10),
( 9, 48, 10),
( 9, 94, 10),
( 9, 90, 6),
( 9, 82, 7),
( 9, 62, 7),
( 9, 9, 1);
Der Datenbestand ist so aufgebaut, dass die Rezepte Nr. 1, 2, 8, 9 alles nötige zum Zubereiten haben.
Benötige dringend HILFEEE !