Dropdown-Eingaben in MySQL-DB verarbeiten

Gast #4064363
Lesenswert?
• ▲
▼
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
Gast #4064377
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.