Ralf: nichtfortlaufende, eindeutige Nummer erzeugen

Beitrag lesen

Hi,

in einem online Shop gibt es für jeden Auftrag eine fortlaufende, eindeutige Auftragsnummer.
Diese soll aber nicht nach außen kommuniziert werden damit man nicht auf die Anzahl der Aufträge schließen kann. Statt dessen soll eine eindeutige aber nicht fortlaufende Nummer als "externe" Auftragsnummer verwendet werden.

Ich möchte jetzt nicht über Sinn und Unsinn von so etwas diskutieren, sondern über die technische Umsetzung.

Die externe (EAN) und die interne (IAN) Auftragsnummer sollen in einer eindeutigen Relation zueinander stehen, d.h. ich muss aus der einen eindeutig die andere erzeugen können.

Ich dachte jetzt an folgendes:

Die Menge der in einem Jahr zu erzeugenden Nummer ist, sagen wir auf 1.000.000 begrenzt. So könnte die EAN aus einem variablen Teil + der Jahreszahl bestehen.
Dann erzeuge ich eine DB Tabelle mit den beiden Spalten EAN und IAN.
Diese fülle ich einmal wie folgt:
Ich erzeuge ein Array das die Zahlen 1-1.000.000 enthält. Mit einer Zufallsfunktion nehme ich ein Element, lösche es aus dem Array und füge es in die DB Tabelle als EAN zusammen mit der fortlaufenden IAN ein.

Wenn das Array nach 1.000.000 Schritten leer ist, enthält meine Tabelle eine eindeutige, nicht so ohne weiteres nachzuvollziehende Relation von EAN und IAN.

Was meint Ihr dazu?
Geht das auch eleganter?

MfG
Ralf