Hallo!
Ich überlege gerade, wie ich die folgenden Daten am besten in MySQL Abspeichern kann:
Dabei habe ich 2 Probleme, erstmal das allgemeine Datenbank-Design
Ich habe jeweils ein "Event". diesem Event ordne ich mehrere "Kunden" und mehrere "Artikel" zu. Jeder Kunde kann dann mehrer Angaben zu einem Artikel machen.
2. die Angaben zu den Artikeln. Problem hier, diese Angaben sind nicht immer gleich, d.h. der eine Arikel hat die Angaben A,B,D, der andere A,C,E,F,G,Y.... das ist bei jedem Artikel anders.
Also:
1 Tabelle "Events" // Tabelle enthält Basisangaben zum jeweiligen Event
Tabelle "Kunden" // Basisdaten der jeweiligen Kunden
Tabelle "Artikel" // Basisdaten der jeweiligen Artikel
Tabelle "Kunden_zu_Event" // Verknüpfungstabelle EventID|KundenID
Tabelle "Artikel_zu_Event" // Verknüpfungstabelle EventID|ArtikelID
soweit so gut(oder würdet Ihr das schon anders machen?), aber wie mache ich jetzt die Angaben zu den Artikeln? Problem außerdem, die "Basisdaten der Artikel" in der Tabelle "Artikel", da kann ich ja nicht die möglichen Angaben speichern, da die ja variabel sind, also brauche ich noch eine
Tabelle "Angaben_zu_Artikel" // da müßte ich dann für jede möglcihe Angabe eine Datensatz mit der ArtikelID speichern, oder?
Tabelle "Angaben" // Daten der Kunden zu den jeweiligen Angaben zu den Artikeln, dann ebenfalls Zeilenweise mit Verknüpfung zur Angabe _und_ Artikel _und_ Kunde.
Was haltet Ihr davon? Habe bisher noch keine solchen Datenbank-Designs benötigt, würdet Ihr das evtl. anders machen? Was ist dann mit Performance, Daten-Konsistenz... vor allem wenn ich dann Joins über 3, 4 und mehr Ebenen verwende? Außerdem ist es wohl nicht ganz optimal andauernd zig Inserts über verschachtelte Schleifen im Code stehen zu haben, das kommt mir jedenfalls so vor als würde ich mir da viele potentielle Fehlerquellen einbauen! Hat vielleicht jemand Tipps für mich wie ich das vernünftig mache und worauf ich achten sollte? Wäre jetzt vielleicht der Zeitpunkt gekommen mich mal mit Transaktionen auseinander zu setzen?
Viele Grüße
Andreas