sebbel: fortlaufende Bestellnummern für Onlineshop

Beitrag lesen

Hi,

Eine Nummer in einer Datenbank, die immer weiter hochgezählt wird? Oder gibt es eine bessere Möglichkeit? Was ist, wenn zwei Kunden gleichzeitig bestellen? Wie lässt sich hier die Gefahr umgehen, dass beide die Gleiche nummer zugewiesesn bekommen?

Ja - am besten in Einer MySQL-Tabelle für jeden Auftrag einen Eintrag eintragen.
Die nächste Nummer lässt sich z.B. feststellen, indem du die Aufträge sortiert nach Auftragsnummer rückwärts ausgeben lässt und dann den ersten nimmst und 1 dazu addierst.

Das kann MySql selber.. einfach nen Primary Key erstellen und auf auto_increment setzen.

Beispiel:

Tabelle d1000Kunden

Spalte1: ID1000 als Primary Key und auto_increment
Spalte2: Name
usw usw

ID1000 wird automatisch hochgezählt.

Tabelle d2000Auftrag

Spalte1: ID2000 als Primary Key und auto_increment
Spalte2: ID1000 (z.b. als BIGINT)
Spalte3: Datum als Datetime
usw usw

der Vorteil in der Konstruktion.. Bestellungen sind einfach einem Kunden zuzuordnen:

(SELECT ID2000, Datum usw FROM d2000Auftrag WHERE ID1000=(SELECT ID1000 FROM d1000Kunden WHERE Name=... usw))

Ausserdem wird die Datenbank kleiner gehalten, als bei jedem Bestellvorgang die Kundendaten zu speichern.