Hallo,
mein Problem ist allgemein mehr ein allgemeines Verständnisproblem für relationale Verknüpfungen zwischen mehreren Tabellen innerhalb einer Datenbank. Ich weiss, dass solche Verknüpfungen einer der großen Stärken von relationalen Datenbanken wie MySQL ist, aber so richtig will mir das ganze irgendwie nicht schmecken.
Mein Problem: Ich habe vor, eine kleine, private Schmuckdatenbank zu erstellen. Hierbei soll ein HTML-Formular als Webfrontend dienen, in das die Daten zu den einzelnen Schmuckteilen eingetragen und schließlich an ein PHP Script übertragen werden. Von dort aus gehts dann in die MySQL Datenbank.
So weit, so gut.
Ein Schmuckstück soll unter anderen folgende Felder besitzen:
- Bestellnr.
- (Schmuck-)Serie
- Schmuckart (Ring, Kette, etc)
- Legierung (WG, GG, Silber etc)
u.s.w.
ausserdem ist es so, dass bei Ringen und Ketten jeweils zusätzliche Angaben gemacht werden müssen:
Für Ketten:
- Kettenlänge
- Kettendurchmesser
Für Ringe:
- Ringkopf (grösse)
- Ringschiene (grösse)
Mein erster Gedanke ist nun gewesen, dass ich alles in eine Tabelle schreibe, sprich dass alle Datenfelder in einer Tabelle sind:
Bestellnr, Serie, Schmuckart, Legierung, Kettenlänge, Kettendurchmesser, Ringkopf, Ringschiene
Und dann halt die entsprechenden Werte dieser Tabelle über das Formular zuordne. Hierbei wäre es natürlich so, dass bei einigen Datensätzen die Felder Kettenlänge, Kettendurchmesser, Ringkopf und Ringschiene NULL bleiben könnten - nämlich dann, wenn es sich nicht um einen Ring oder eine Kette handelt (hier bleiben 4 Felder auf Null) oder um eine Kette oder einen Ring handelt (hier bleiben jeweils 2 Felder leer).
Nun kam mir aber in den Sinn, dass es vielleicht aus diesem Grund unter Umständen besser wäre, die Daten, die sich auf die Ketten und auf die Ringe beziehen, in eine jeweils extra Tabelle zu schreiben und das ganze dann am Ende zu verknüpfen.
Das würde dann bedeuten, ich mache 3 Tabellen und weil ich weiss, dass das Ganze später über so eine Zuordnungstabelle verknüpft werden soll, gebe ich halt noch jeweils ne ID-Nummer hinzu (Bestellnr ist hierfür nicht geignet, weil nicht jedes Schmuckstück eine solche hat).
Tabelle 1: Haupttabelle
ID, Bestellnr, Serie, Schmuckart, Legierung
Tabelle 2: Kettentabelle
Kettenr, Kettenlänge, Kettendurchmesser
Tabelle 3: Ringtabelle
Ringnr, Ringkopf, Ringschiene
Soderle - nun weiss ich ehrlich gesagt nicht, ob das bis hierhin überhaupt richtig ist und ob das Ganze überhaupt Sinn macht... wie gesagt, mit diesen Verknüpfungen kann ich mich nicht so anfreunden.
Für mein Verständnis bräuchte man dann noch die 4. Tabelle zum verknüpfen. Aber wie soll das funktionieren?
Tabelle 4: Zuordnung
oder wie? oder was?
Also wie man sieht, hab ich eine Ahnung und bräuchte Hilfe ;(
Danke,
Patryn
mein Problem ist allgemein mehr ein allgemeines Verständnisproblem für relationale Verknüpfungen zwischen mehreren Tabellen innerhalb einer Datenbank. Ich weiss, dass solche Verknüpfungen einer der großen Stärken von relationalen Datenbanken wie MySQL ist, aber so richtig will mir das ganze irgendwie nicht schmecken.
Mein Problem: Ich habe vor, eine kleine, private Schmuckdatenbank zu erstellen. Hierbei soll ein HTML-Formular als Webfrontend dienen, in das die Daten zu den einzelnen Schmuckteilen eingetragen und schließlich an ein PHP Script übertragen werden. Von dort aus gehts dann in die MySQL Datenbank.
So weit, so gut.
Ein Schmuckstück soll unter anderen folgende Felder besitzen:
- Bestellnr.
- (Schmuck-)Serie
- Schmuckart (Ring, Kette, etc)
- Legierung (WG, GG, Silber etc)
u.s.w.
ausserdem ist es so, dass bei Ringen und Ketten jeweils zusätzliche Angaben gemacht werden müssen:
Für Ketten:
- Kettenlänge
- Kettendurchmesser
Für Ringe:
- Ringkopf (grösse)
- Ringschiene (grösse)
Mein erster Gedanke ist nun gewesen, dass ich alles in eine Tabelle schreibe, sprich dass alle Datenfelder in einer Tabelle sind:
Bestellnr, Serie, Schmuckart, Legierung, Kettenlänge, Kettendurchmesser, Ringkopf, Ringschiene
Und dann halt die entsprechenden Werte dieser Tabelle über das Formular zuordne. Hierbei wäre es natürlich so, dass bei einigen Datensätzen die Felder Kettenlänge, Kettendurchmesser, Ringkopf und Ringschiene NULL bleiben könnten - nämlich dann, wenn es sich nicht um einen Ring oder eine Kette handelt (hier bleiben 4 Felder auf Null) oder um eine Kette oder einen Ring handelt (hier bleiben jeweils 2 Felder leer).
Nun kam mir aber in den Sinn, dass es vielleicht aus diesem Grund unter Umständen besser wäre, die Daten, die sich auf die Ketten und auf die Ringe beziehen, in eine jeweils extra Tabelle zu schreiben und das ganze dann am Ende zu verknüpfen.
Das würde dann bedeuten, ich mache 3 Tabellen und weil ich weiss, dass das Ganze später über so eine Zuordnungstabelle verknüpft werden soll, gebe ich halt noch jeweils ne ID-Nummer hinzu (Bestellnr ist hierfür nicht geignet, weil nicht jedes Schmuckstück eine solche hat).
Tabelle 1: Haupttabelle
ID, Bestellnr, Serie, Schmuckart, Legierung
Tabelle 2: Kettentabelle
Kettenr, Kettenlänge, Kettendurchmesser
Tabelle 3: Ringtabelle
Ringnr, Ringkopf, Ringschiene
Soderle - nun weiss ich ehrlich gesagt nicht, ob das bis hierhin überhaupt richtig ist und ob das Ganze überhaupt Sinn macht... wie gesagt, mit diesen Verknüpfungen kann ich mich nicht so anfreunden.
Für mein Verständnis bräuchte man dann noch die 4. Tabelle zum verknüpfen. Aber wie soll das funktionieren?
Tabelle 4: Zuordnung
Code:
ID Kettenr Ringnr 1 1 NULL (es war ne Kette) 2 NULL NULL (es war weder Kette noch Ring) 3 NULL 2 (es war ein Ring)
Also wie man sieht, hab ich eine Ahnung und bräuchte Hilfe ;(
Danke,
Patryn
Kommentar