Hallo Murat, vielen Dank für die Antwort.
Folgendes Beispiel: Kunde ordert etwas, Betreiber/Mitarbeiter benennt Produkt um (wissen vielleicht noch gar nicht, dass eine Order existiert), Kunde will danach die Order ansehen/PDF downloaden und bekommt was anderes präsentiert als in seiner Email stand.
Der Preis zu diesem Zeitpunkt wird ja fixiert abgespeichert, nur der Produktname (oder was auch immer sonst noch benötigt wird) nicht.
Hat ja einen Grund, warum man den Preis in der orderitems hinterlegt, oder?
Hat man dann als Shopbetreiber eine "unveränderbare" Kopie der Bestellung?. Geht das nicht in die Richtung GoBD?
Hier ein Auszug von einer Seite, die sich mit der GoBD auseinander setzt:
Ebenfalls wichtig ist, dass sämtliche Belegdaten nachvollziehbar sind. Darunter ist zu verstehen, dass ein Mitarbeiter einer Behörde sämtliche abgeschlossene Geschäfte, von der Anbahnung bis zum Abschluss, lückenlos nachvollziehen kann. Für Shopbetreiber ist dieser Punkt nicht immer trivial, da häufig mehrere Dienstleister an einer Bestellung involviert sind. Im Onlineshop ist dies z.B. die Bestellung selbst, die entweder im Shopsystem oder per eingehender E-Mail für den Betreiber vermerkt ist.
Warenwirtschaftsprogramme (Lexware etc) und andere Shopsysteme machen das so, dass alles was zum Kunden/Lieferanten geht, festgeschrieben wird, sprich nachdem die Rechnung/Lieferschein/Bestellbestätigung erstellt wurde, führen Änderungen am Artikel nicht zur Änderung an der Rechnung/Lieferschein/Bestellbestätigung.
Ist auch relativ aufwändig, weil wir dadurch die Datenintegrität verlieren und viel Code umbauen müssten.
Ich sehe das eher so, dass die Orders dann erst Datenintegrität bekommen werden, nicht verlieren. Momentan sind Orders eben änderbar (z.B. durch unachtsame Mitarbeiter) durch Änderungen am Product-Datensatz (excl. Preis).
Änderungen würden sich glaube ich darauf beschränken, wie man mit der ProductId in der orderitems umgeht (double check, 1. existiert Datensatz noch, 2. deleted-Flag) und woher die Daten für die Anzeige der Order genommen werden.
Auch eine Neuerstellung einer Bestellung durch den Kunden würde nicht viel aufwändiger, wenn die Produkt-Id immer noch mit gespeichert wird, denn gelöschte Artikel werden da sowieso nicht wieder in den Warenkorb gelegt.
Was die Medien angeht, ich hätte eben gerne bei den MediaFiles geschaut, ob es noch einen Verweis auf diese gibt, wenn nicht, dann kann ich die Datei (nein, ich hab auch nicht geplant, das in der DB zu speichern ) und den zugehörigen Eintrag ja löschen. Bei uns geht es dabei um 15/30/60 Bilder (je ~1MB plus Thumbnails) pro Artikel. Das summiert sich dann schon schnell und dann spielt die Datenmenge durchaus eine Rolle, will ja nicht alle paar Monate Festplattenplatz dazubuchen müssen.
Ja, Smartstore ist performant und es ist wirklich super, damit zu arbeiten, auch als Entwickler.
Aber die kaskadierende Abhängigkeit der orderitems zu den products ist etwas, was auch mein Chef (absolut kein IT-Mensch) sofort negativ gesehen hat, als ich ihm davon erzählt habe.
Ich muss jetzt erstmal schauen, ob ich die Speicherplatz-Problematik anders in den Griff bekommen werde, wie gesagt, unbenutzte Dateien würde ich gerne löschen .
Mit freundlichen Grüßen
Chris