Das ist für mich ein klarer Hinweis, dass der Geschäftsfall nicht sauber definiert/designed ist.
Nummernvergaben versuche ich so zu designen dass der Anwender/Benutzer möglichst wenig damit zu tun hat. Denn er wird sich langfristig SICHER "vertun".
Eine Software hat IMHO die Aufgabe solche Geschäftsfälle sicher und fehlerlos zu machen.
Ich kenne den Ablauf von Auktionen zuwenig um das Vorschläge machen zu können.
Aber was ich herausgelesen habe ist, dass es Auktionen gibt an denen Objekte versteigert werden.
Für mich schonmal drei Tabellen.
zb TAuktion (auktID, Datum, Ort, etc etc) und TObjekt(objektID, Beschreibung, etc etc) und TAuktionObjekt(auktobjektID, objektID, auktID, ObjektNummer, verkauft_janein, Verkaufspreis, etc etc)
Damit können Objektdaten erfasst werden und deren Zuordnung zu einer Auktion ist flexibel.
Nur für die Objektnummernvergabe würde ich pro Auktion je eine eigene Tabelle erstellen welche nur die eine nummerID hat. Diese Tabelle kann nach der Aution mit einer Administrationsfunktion in einem Aufräumverfahren wieder gelöscht werden.
Bei der Vergabe der Nummer wird ein neuer Datensatz angelegt und der vergebene Wert/ID aus der DB abgeholt. Soweit ich weiß sind unter MySQL, MariaDB und MSSQL die autoincrement-Funktionen sessionsicher (dh es wird sauber hochgezählt auch wenn mehrere Benutzer mehr oder weniger gleichzeitig daran arbeiten und jeder Benutzer bekommt nur die Nummer zurück die er eingetragen hat. wie Postgres das regelt weiß ich nicht)
Die zurückgegebene/ermittelte Nummer würde ich mit einer modulo division (Restwertdivision) mit einem im Programm hinterlegten Wert dividieren (in deinem Fall ist das die Anzahl der voraussichtlich zur Versteigerung kommenden Objekte -- das ist wohl deine Zahl 200). Der errechnete Wert ist die vergebene Objektnummer.
Das Problem mit den übrig gebleibenen Objekten würde ich als Administrationsfunktion lösen. Alle übrig gebliebenen Objekte können damit dann einer oder mehreren künftigen Auktionen zugeordnet werden. Das Programm macht dann die Einträge automatisch indem es neue Datensätze in TAuktionObjekt für die jeweilige Auktion samt den Nummern erzeugt.
So kannst du auch historisch sagen wie oft ein Objekt schon dran war etc.
Als Adminfunktion braucht es noch Funktionen die einzelne, nicht mehr benötigte Auktionen aus dem System löschen, aber das ist dann eine Frage der Businesslogik, denn vielleicht braucht man die Daten (ggfs auch die Verkaufspreise etc) auch für Auswertungen oder Steuer/Finanzamtsmeldungen.
Für Objektetiketten würde ich dieser Erfahrungsempfehlung folgen und auch Datum der Auktion, Objektnummer und zumindest eine kurzbeschreibung des Objektes drauf drucken. Farbige Etiketten je Auktion sind sicher auch kein Fehler.Joh hat geschrieben: Mo 20. Nov 2023, 08:54 Das führt doch nur zu Fehlern im Ablauf. Besser ALLE alten Nummern runter und ALLES neu bekleben. Das verstehen auch die Helfer, die nicht immer dabei sind.
... nur so mal als grobes Design für dein Problem