Na ja, wenn man nachträglich was verändern will, kann man doch den betreffenden Satz editieren und z.B. in einem Feld
Rabatt (in der Tabelle tatsächlich gespeichert) einen anderen Prozentsatz eingeben, sodaß sich bei erneutem Aufruf einer
Abfrage (oder anderer Aktualisierungsmethoden) in einem dort befindlichen berechneten Feld wieder entsprechend aktualisierte Werte befinden (hinsichtlich Preisberechnung). Also wenn ich in einem Fall einen bestimmten Mehrwertsteuersatz zugrunde liegen habe, speichere ich diesen mit dem entsprechenden Artikeldetaildatensatz ab (oder übergeordnetem Rechnungsdatensatz, je nach Anlage-Philosophie der ganzen Geschichte). Die Postensumme (und irgendwann dann auch der Rechnungsbruttobetrag) errechnet sich doch dementsprechend. Wenn ich jetzt auf die Idee käme, einer bereits erstellten Rechnung (bzw. einem in früherer Vergangenheit errechnetem Preis) nachträglich (warum auch immer) nun einen gesonderten Rabatt einräumen zu müssen, wäre buchhalterisch sauber die Lösung die, dieser Rechnung (eindeutig identifiziert über ihre RGID) eine Gutschrift einzuräumen in einer gesonderten Tabelle (und schon wieder ganz klassisch: 1 Rechnung kann wiederum n-beliebig viele
Gutschriften haben) - das Ganze in 'ner entsprechenden Abfrage gegenübergestellt, ergibt doch wieder ganz korrekte
Ergebisse. (Übrigens dürfen Rechnungen nicht nachträglich betragsmäßig verändert werden, sondern erfordern einen
entsprechenden dokumentierbaren Datensatz, der die Rabattierung/Stornierung oder was auch immer ausgibt.
Normalisierung:
Wenn die zweite schon so anstrengend war: auch kleine Projekte wachsen und dann hat man den Salat. Glaub’ mir’s.
Überhaupt ist Normalisierung (ob von 1-5 ist egal) kein Hexenwerk - wenn man mit gesundem Verstand schlicht und
ergreifend dafür sorgt, daß jedes Tabellenattribut immer nur von einem eindeutigen Schlüssel abhängt, ist man schon auf der
sicheren Seite. Alles andere ist was für die Informatik-Freggles an den Hochschulen.
Gruß
SW