MySQL-Datenbank-Design

InFlame

Erfahrenes Mitglied
Hallo,

ich bin gerade dabei, für meine Mutter die lang versprochene Rezept-Datenbank zu realisieren. Diesmal möchte ich allerdings die Normalisierung beachten.
Aus diesem Grund habe ich mal ein Bild mit meiner Überlegung der Tabellen gemacht welches im Anhang zu finden ist.

Ich habe mir das ganze so vorgestellt:
Es gibt eine Basisdatenbank in der jedes Rezept mit

  • eindeutige ID
  • Name
  • Seite im Buch/Heft (Buch/Helft selber wird in einer anderen Tab. gespeichert)
  • evtl. Bemerkung (z.B. Änderungen etc.)
  • Zeit - Da werde ich wohl Begriffe wie "Schnell", "Langsam" etc verwenden (noch nicht fertig überlegt :))
  • Ist das Rezept für Besuch geeignet
  • Und eine Bewertung des Rezeptes

Da diese Angaben ja eindeutig sind und nur für dieses Rezept sind, speichere ich es in einer Tabelle.
Dann werden dem Rezept noch verschiedene Zutaten, Beilagen und Kategorien (z.B. Suppe, Nachspeise, Auflauf...) zugeordnet, welche in einer anderen Tabelle gespeichert werden und mit Hilfe der Zwischentabellen zusammengefügt.

Ist das so ok? Gibt es noch bessere möglichkeiten
Bin für jeden Vorschlag offen :)
 

Anhänge

  • Rezepte2.png
    Rezepte2.png
    10,4 KB · Aufrufe: 104
Hallo !

Mir kommen die Tabellen Zutaten und Beilagen noch etwas komisch vor. Jedes Gericht hat ja wahrsch. mehrere Zutaten bzw. Beilagen.

Meiner Meinung nach müsste oben zwei Tabellen sein und zwar ganz einfach: Zutat und Beilage. Wo einfach alle möglichen Zutaten abgespeichert werden mit einer ID und Beschreibung - gleiches für Beilagen.

Die "Verlinkungstabellen" sollten nun ein weiteres ID Feld bekommen damit die Datensätze unterscheidbar bleiben. Hier werden nun alle Zutaten für eine RID gespeichert und zwar als Paare von RIDs und ZIDs.

So würd ich das jedenfalls machen, keine Ahnung, ob das besser is ..

Gruß Stefan
 
teppi hat gesagt.:
Hallo !

Mir kommen die Tabellen Zutaten und Beilagen noch etwas komisch vor. Jedes Gericht hat ja wahrsch. mehrere Zutaten bzw. Beilagen.

Meiner Meinung nach müsste oben zwei Tabellen sein und zwar ganz einfach: Zutat und Beilage. Wo einfach alle möglichen Zutaten abgespeichert werden mit einer ID und Beschreibung - gleiches für Beilagen.

Die "Verlinkungstabellen" sollten nun ein weiteres ID Feld bekommen damit die Datensätze unterscheidbar bleiben. Hier werden nun alle Zutaten für eine RID gespeichert und zwar als Paare von RIDs und ZIDs.

So würd ich das jedenfalls machen, keine Ahnung, ob das besser is ..

Gruß Stefan
Hallo teppi,

Vielen Dank für deine Antwort.
Aber eigentlich hab ich das doch, was du meinst.
In der Tabelle Beilagen werden alle Beilagen gespeichert, genauso in der Zutatentabelle. In der zutinrez-Tabelle wird dann die ID der jeweiligen Zutat mit der ID des Rezeptes gespeichert, dasselbe passiert mit Zutaten...
oder habe ich was mißverstanden?
 
Hi !

Nunja, dass war nicht aus der Grafik zu erkennen, ob du die Zutaten "atomar" speichern willst. Da steht nämlichen ZutatEN im Feld oben ;) ..

Das einzigste Problem, was ich sah, war, dass du keinen einfachen Primärschlüssel in der "zutinrez", sowie in der "beilinrez", Tabelle hast. Denn beide Werte RID und ZID können ja doppelt vorkommen und werden sie wahrscheinlich auch.

Gruß Stefan
 
teppi hat gesagt.:
Nunja, dass war nicht aus der Grafik zu erkennen, ob du die Zutaten "atomar" speichern willst. Da steht nämlichen ZutatEN im Feld oben ;) ..
Das stimmt doch auch :) Denn es gibt ja mehrere Zutaten. Und wie gesagt: In dieser Tabelle sind alle Zutaten mit ID gespeichert.

teppi hat gesagt.:
Das einzigste Problem, was ich sah, war, dass du keinen einfachen Primärschlüssel in der "zutinrez", sowie in der "beilinrez", Tabelle hast. Denn beide Werte RID und ZID können ja doppelt vorkommen und werden sie wahrscheinlich auch.
Ich brauche da doch auch keinen extra Primärschlüssel in den Tabellen, da ja jede Beilage nur einmal einem Rezept zugewiesen werden kann. Bringt ja nix, wenn ich bei einem Rezept zweimal Brokolie eingebe. Einmal wäre ja schon zuviel :)
 
Zurück