title image


Smiley Automatische Auftragsnummer bei mehreren Benutzern
Hallo,



ich habe folgendes Problem.

In einer Tabelle habe ich einen Auftragsnummer, diese ist Primärschlüssel und soll aufsteigend vergeben werden.



Ich "ziehe" mir eine neue Nummer über eine einfache Abfrage (max+1). Dies funktioniert recht gut, allerdings schlägt es fehlt, wenn gleichzeitig 2 oder mehrere einen Auftrag eingeben möchten.

Da das Formular noch nicht gespeichert ist, haben beide dann die gleiche Auftragsnummer, was natürlich zu race-Conditions führt.



Ich hatte zuvor ein Autowert-Feld für diese Nummer genommen, dieses iat allerdings problematisch, da die Nummern aufsteigend vergeben werden sollen und falls ein Angebot wieder gelöscht wird - Fehler bei der Eingabe - sollte diese Nummer wieder vergeben werden können, was mit einem Autowert-Feld unmöglich ist.



Meine erste Lösungsidee ist zwischenzuspeichern (in einer Tabelle), welche Nummer gerade neu generiert wurde, in einer Art Pool. Dieser pool wird dann zusätzlich betrachtet, wenn man eine neue Nummer generiert, max+1 wenn nicht schon im Pool, dann +2 etc.

Fall das Angebot dann gespeichert worden ist, kann die Nummer aus dem Pool gestrichen werden, wenn die Eingabe abgebrochen wird, dann wird sie ebenfalls aus dem Pool gelöscht.



Gibt es vielleicht eine schönere Lösung?



Joe

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: