Rezeptdatenbank mit OpenOffice Base erstellen
Also ich möchte eine Rezeptdatenbank selber erstellen. Ich weiß, dass es kostenlose Programme für so was gibt, aber ich würde gern versuchen selber so eine Datenbank zu erstellen. Im wesentlichen soll die nur den Rezeptnamen und die Zutaten enthalten, so dass eine Abfrage nach den Zutaten möglich ist. (Zubereitung muss also nicht dabei sein) Jetzt bin ich am überlegen wie viele Tabellen ich mit welchen Inhalten brauche...ich weiß, dass es sinnvoller ist mehrere kleine Tabellen anzulegen und nicht nur eine große, in der alle Inhalte enthalten sind. Aber wie teile ich das am besten auf? Und die Sache mit den Beziehungen zwischen den Tabellen habe ich auch nicht mehr so im Kopf, also hat dazu vllt noch jemand einen Hinweis? Durch Recherchen im Internet weiß ich schon, dass das kein einfaches Projekt ist, also spart euch die Kommentare dazu, ich hab mir das jetzt einmal in den Kopf gesetzt und lass mich davon nicht mehr abbringen ;) Vielen Dank für alle hilfreichen Antworten!
1 Antwort
Also schwierig ist Deine Datenbank nicht. Meine hat 55 Tabellen.
Tabelle Zutaten: Zut-Nr, Bezeichnung, Einheit (Primärschlüssel Zut-Nr)
Tabelle Rezept: Rez-Nr, Bezeichnung (Primärschlüssel Rez-Nr)
Tabelle Rezept-Positionen: Rez-Nr, Zut-Nr, Menge, Einheit (Primärschlüssel (Rez-Nr, Zut-Nr), Fremdschlüssel Rezept.Rez-Nr, Zutaten.Zut-Nr)
Als Einheit kommt St (Stück), EL (Esslöffel), g (Gramm) usw. in Frage. Bei der Menge würde ich eine Dezimalstelle vorsehen (z.B. für eine halbe Zwiebel 0,5).
Zur Ausgabe eines Rezeptes z.B. mit der Rez-Nr 100 lautet dann die Abfrage:
select Rezept.Rez-Nr, Rezept.Bezeichnung, Menge, Einheit, Zutaten.Bezeichnung from Rezept-Positionen, Rezept, Zutaten where Rezept-Positionen.Rez-Nr = Rezept.Rez-Nr and Rezept-Positionen Zut-Nr = Zutaten.Zut-Nr and Rez-Nr = 100
Für die Zutaten könnte man noch eine Bewertung vorsehen, eine Nr, die die Reihenfolge beeinflusst. So könnte man vermeiden, dass die Liste nicht gerade mit einer Prise Salz beginnt, also die wichtigen Zutaten zuerst aufzählen. Die Ausgabe müsste dann mit der Anweisung order by Bew-Nr erweitert werden.