Wie kann ich Bestellungen am besten in einer Datenbank speichern?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Du hast Deine Datenbank so konzipiert, dass es für jeden Artikel nur einen Preis gibt, nämlich in der Artikeltabelle. Als Kaufmann musst Du doch wissen, dass der Preis nur zum Zeitpunkt der Bestellung damit übereinstimmt. In der Artikeltabelle kann er sich ändern, in einer abgeschlossenen Bestellung darf es sich dagegen nicht mehr ändern. Also hast Du zwei Preise, einen aktuellen Preis und den Preis, den Du einem Kunden berechnet hast. Wenn Du jetzt lieferst und die Rechnung erstellst, nimmst Du den falschen Preis, weil Du den richtigen Preis gar nicht gespeichert hast. Nur weil die Preise meistens übereinstimmen, sind die Datenfelder nicht die selben.

Also: Füge Deiner Bestelltabelle den Preis der Bestellung hinzu und verwende bei der Verarbeitung immer den richtigen Preis. Dann kannst in Deiner Artikeltabelle die Preise problemlos ändern und auch neue Artikel in das Sortiment aufnehmen. Beim Herausnehmen aus dem Sortiment darf man nicht ohne weiteres den Artikel löschen, da in der Bestelltabelle und wohl auch in der Rechnungstabelle auf diesen Artikel immer noch Bezug genommen wird. Man macht das am besten mit einem zusätzlichen Feld "Lieferstatus", z.B. 2 = vefügbar, 1 = vorübergehend vergriffen, 0 = nicht mehr im Sortiment. Endgültig löschen kannst den Satz dann später, wenn die darauf bezugnehmenden Bestellungen und Rechnungen nach Ablauf der Aufbewahrungsfrist auch gelöscht werden.

Grundsätzlich musst Du unterscheiden zwischen Stammdaten (das sind z.B. Artikel- und Kundendaten) und Bewegungsdaten (das sind Bestellungen, Rechnungen, Zahlungseingänge und dergleichen). Die Bewegungsdaten nehmen Bezug auf die Stammdaten und haben auch eigene Daten, z.B. Rechnungs-Nr, Rechnungs-Datum und eben auch die in Rechnung gestellten Preise und Anzahl der bestellten bzw. gelieferten Artikel.

Wo genau liegt dein Problem?

Du kannst doch eine Tabelle für die Bestellungen anlegen und dort jede Bestellung mit Kunde, Preis, Artikelnummer und was auch immer (alles was du benötigst halt) speichern. Dann spielt es doch keine Rolle ob sich irgendwas anderes ändert?

Beispiel:

Der Kunde bestellt. Die Datenbank mit den Artikeln sieht im Moment so aus:

  • Artikel 1: Buch (10€)
  • Artikel 2: Stift (1€)
  • Artikel 3: Lampe (30€)

Die Bestellung wird dann so abgespeichert:

  • Kunde: Mr. Beispiel
  • Menge Artikel 1: 10
  • Menge Artikel 2: 0
  • Menge Artikel 3: 1

Wenn die Datenbank mir den Artikel jetzt nach der Bestellung geändert wird, z.B. ist Artikel 1 jetzt ein Handtuch, dann stimmt die Bestellung die Mr. Beispiel aufgegbenen hat nicht mehr. Das ist das Problem. Die Daten müssen korrekt abgespeichert werden, sodass nach einer Änderung der Artikel oder der Preise nicht alle Bestellungen falsch sind

0
@MinecrafterPG

Dann musst du wie gesagt alle Daten, die sich ändern könnten und die du für die Abwicklung der Bestellung brauchst, mit in der Tabelle für die Bestellungen speichern.

Allerdings würde ich gar nicht erst so anfangen bestehende Artikel nur zu editieren und dabei die ID beizubehalten, einen neuen Artikel würde ich immer als neuen Datensatz speichern, einen alten / nicht mehr benötigten entweder löschen oder ihm ein "inaktiv-Flag" verpassen, dann kommt es gar nicht erst zu so einem Problem.

0

Wenn du mit php und mysql doch vertraut bist warum dann so ne unpräzise frage?

Berufsbezeichnung für eine Stelle im Onlineshop gesucht

Hallo,

bin eigentlich gelernter Kaufmann im Großhandel und habe zuletzt in einem Onlineshop gearbeitet und möchte gern wieder in diesem Bereich arbeiten. Die Stellensuche erschwert sich jedoch sehr, da mir der nötige Fachbegriff für meine Tätigkeit im Onlineshop fehlt. Hier anbei mal ein paar Schlagwörter, damit ihr Euch ein Bild von meiner bisherigen Tätigkeit machen könnt. Könnt ihr mir ein paar berufsbezeichnete Schlagwörter geben, die sich auf diese Tätigkeiten beziehen? Gerade im IT/CMS oder E-Commerce-Bereich erschwert sich die Stellensuche nach Stellen enorm, da sie meist durch "einge-englischte" Fachbegriffe ersetzt wurden.

Meine Tätigkeiten: - neue Produkte fotografieren, Bilder mit Bildbearbeitungsprogramm bearbeiten und Bilder, selbsterfasste Kurzbeschreibungen, VK-Preise, Schlagwörter für die Suche in Suchmaschinen in ein CMS-System einfügen - Kundensupport per Telefon und Email um Anfragen der Kunden zu beantworten - Bestellannahme und Bestellbearbeitung der eingetroffenen Bestellungen im Shop (CMS) - System - Rechnungs- und Lieferscheinlegung - Logistik / Verschicken der Bestellungen mit DHL Intraship und DHL Easylog - selbstäniges Führen, Organisieren und Überwachen des Zahlungsverkehrs der bezahlten Bestellungen (Kreditkarte, PayPal, Nachnahme und Überweisung) - Reklamationsbearbeitung der zurückgeschickten Ware - selbstständiges Führen der firmeneigenen Ebayshops.

Könnt ihr mir ein paar Berufsübergreifende Berufsbezeichungen nennen, die einen Teil der Tätigkeiten umfassen?

...zur Frage

MySQL Datenbank mieten?

Hallo!

Ich würde gerne eine MySQL Datenbank mit phpmyadmin erstellen. Das Problem dabei ist, dass man auch von anderen Orten Zugriff darauf haben soll und ich Rechte vergeben will, damit nicht jeder alles bearbeiten kann. Nun meine Frage:

Wie kann ich das am besten machen?

Hab mit MySQL leider noch nicht so viel erfahrung. Deswegen entschuldigt bitte, falls ich etwas falsch gesagt habe :)

Mfg

Super Space

...zur Frage

Websocket und MySQL-Datenbank?

Hallo zusammen,

Wenn ich mit Javascript (zum Beispiel ein HTML5/Canvas-) Spiel programmieren will, sollte das auch sicher sein. Wie realisiere ich es also, dass z. B. bei jeder Positionsänderung des Spielers per Javascript die neue Position in eine auf dem Server liegende Datenbank eingetragen wird und bei jeder weiteren Änderung dieser Wert in der Datenbank verändert und der Spieler an der neuen Position angezeigt wird? (Hauptsächlich weiß ich nicht, wie das mit den Websockets und der Datenbank geht, aber auch der Javascript-Teil ist für mich schwierig - in PHP und ohne Websockets könnte ich's...)

Danke schon mal!

...zur Frage

MySql datenbank lokal erstellen

Hallo ich benutzt der zeit die daten bank vom DB4free.net aber die ist schlech (langsam,immer probleme) darum meine frage: kann ich eine eigen lokale MySQL datenbank erstellen das mit dem hosting spiel da keine rolle nur wenn es geht wie und am besten kostenlos

...zur Frage

Wie garantiere ich eine sichere Verbindung zwischen einer Android Application und einer MySQL Datenbank?

Hallo,

Ich bin gerade dabei eine Android App zu erstellen, für welche ich eine MySQL-Datanbank Anbindung benötige.

Testweise habe ich mit XAMPP eine Lokale Datenbank und PHP-Scripts in meinem Netzwerk veröffentlicht um mit Android-Studio und meinem Smartphone mit diesen zu Interagieren. Die Kommunikation zwischen Java und PHP funktioniert problemlos.

Wenn ich jedoch überlege diese App zu veröffentlichen und die Datenbank hierfür Online zu stellen ist es doch sehr unsicher, da jeder Zugriff auf die PHP Scripts haben kann welche mit der Datenbank interagieren. ist es eine Lösungsmöglichkeit die PHP Scripts in der App zu speichern und durch diese auf die Online Datenbank zuzugreifen? Denn es gibt doch sicher Möglichkeiten die App Ordner einzusehen und somit auch die PHP-Scripts mit den Passwörtern für die Datanbank!

Hat jemand diesbezüglich Erfahrungen, Tipps oder eine sichere Lösungsmöglichkeit? Ich habe lediglich Grundkenntnisse was Datenbanken angeht und zu diesen gehört leider nicht die Sicherheit.

...zur Frage

Xampp MySQL Datenbank "Zugriff verweigert"?

Hallo! Ich habe bei Apache und MySQL in allen Config Dateien (my.ini + config.inc.php den selben User, das selbe Passwort und den selben Port eingestellt. Wenn ich nun zu meiner Seite verbinde und PHPMyAdmin aufrufen will kommt immer nur dieser Screen: http://puu.sh/jmkGp/591d67c2c1.png Alle Namen sind gleich und auch passwörter, trotzdem will er nicht :/ Braucht ihr hier noch den Inhalt der Configs? Ich sollte anmerken, dass Ich wenig Erfahrung im Gebiet MySQL/Php habe, trotzdem brauche ich eine Datenbank :/ Danke!

...zur Frage

Was möchtest Du wissen?