Hallo, ich habe ein kleines Design-Problem bei einer Web-Basierten Datenbank (PHP/MySQL). Es geht um Eingabefelder, dessen Eingaben mehr oder weniger aus einer überschaubaren Menge an Daten bestehen und von mir daher zunächst mit Hilfe von Dropdowns realisiert wurden. So ein Dropdown kann z.B. eine Auswahl an unterschiedlich hohen Preisnachlässen enthalten. Da später auch mal eine Fakturierung geplant ist, hielt ich es zunächst für sinnvoll, die ausgewählten Werte direkt in der Datenbank zu speichern. So lassen sich die gespeicherten Werte später auch wieder mit wenig Aufwand in einer lesbaren Form anzeigen. Soll jedoch vor der Rechnungsstellung noch etwas geändert werden, hat man natürlich das Problem, dass es die damaligen Werte unter Umständen schon gar nicht mehr in der Dropdown-Auswahl gibt! Die Werte sollen nach Möglichkeit aber auch nicht manuell eingegeben werden, sondern auf eine festen Auswahl beschränkt werden, die nur jemand mit entsprechenden Berechtigungen ändern kann. Spontan fallen mir jetzt 2 Möglichkeiten ein, wie man das lösen könnte: 1) Ich speichere anstelle der tatsächlichen Werte nur Fremdschlüssel und lösche die nicht benötigten Werte nicht wirklich, sondern markiere sie nur als gelöscht, damit sie nur in der Dropdown-Auswahl angezeigt werden, wenn sie früher bereits gespeichert wurden. 2) Ich speichere die tatsächlichen Werte und füge bei späteren Änderungen dynamisch den jeweils gespeicherten Wert zur aktuellen DropDown-Auswahl hinzu. Ansatz 1 scheint mir vom DB-Design her sauberer zu sein, weil ich hier nicht ständig prüfen müsste, ob die frühere Auswahl noch in der aktuellen Auswahl vorhanden ist, damit nicht 2 identische Werte zur Auswahl stehen. Allerdings mache ich mir hier Gedanken wegen der Rechnungen. Da würde ich aus Sicherheitsgründen lieber direkte Werte speichern und keine Fremdschlüssel. Oder ist das hier ein klassischer Fall, wo man auf die Normalisierung verzichtet und sowohl den direkten Wert als auch den Fremdschlüssel speichert? Viele Grüße, Mike
Preisnachlässen würde ich gar nicht normalisieren. Es wird wohl später nie die Notwendigkeit bestehen aus alles 5% Nachlässen 15% zu machen. Damit hat man auch die Möglichkeit der manuellen Eingabe (wenn man es denn will). Also ich bin für Lösung 2.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.