Sven Rautenberg: Kundennummer generieren

Beitrag lesen

Moin!

Ich möchte aber, dass eine individuelle Kundennummer aus den gemachten Angaben (Plichtfelder: Name, Vorname, Geb-Datum und weitere nicht Plichtfelder) generiert wird.

Wozu willst du diese Kundennummer verwenden?

Die Antwort auf diese Frage ist nicht ganz uninteressant, denn im Prinzip liefert dir MySQL schon die Kundennummern, wenn du eine ID als Primärschlüssel-Feld definierst und mit "auto_increment" versiehst. Dann zählt MySQL bei jedem neuen Eintrag die Nummer hoch, und du hast immer absolut eindeutige Kundennummern.

Diese sind dann auch prima geeignet, um den Datensatz wiederzufinden. Und es stecken keine Informationen drin, die der Kunde vielleicht nicht so gern drinhaben würde.

Dumm nur: Wenn du die Datenbank neu beginnst, kriegt der erste Kunde die Nummer "1" (bzw. mit Nullen aufgefüllt die Nummer 000000000000000000001). Sieht doof aus, ist aber so.

Die Kundenummer sollte dann in etwa so aussehen:

110556hm-ZZZZMMJJ

Dieses Schema begrenzt deine mögliche Kundenzahl. Ich würde sowas nicht verwenden wollen.

Die Geburtsangabe sowie die Initialen sind redundant. Der Verzicht auf eine vierstellige Jahresangabe bringt seit 2000 Probleme. Das Datum am Ende ist zwar interessant, aber es muß nicht in der Kundennummer stehen, es könnte auch im Datensatz stehen. Und die Zufallsnummer macht überhaupt die größten Probleme, weil der Zufall keine Eindeutigkeit garantiert, wenn man das nicht explizit nachprüft.

Wie kann ich das realisieren? Und vorallem, wie kann ich gewährleisten, dass auch jede Kundennummer nur einmal vergeben wird? Das muss ich sicher in der Datenbank vor Eintrag prüfen ...

Wie erwähnt: Die Datenbank liefert dir freiwillig und ohne Aufwand eine eindeutige Nummer zur Identifizierung. Du könntest diese Nummer noch über einen Prüfsummenalgorithmus laufen lassen, um eine oder mehrere Prüfziffern hinzuzufügen, damit beim erneuten Eingeben der Kundennummer keine dummen Eingabefehler auftreten. Du könntest die Kundennummer sogar mit soviel Redundanz versehen, dass sich Nummernfehler vom Algorithmus selbst korrigieren lassen und somit wieder die richtige Kundennummer herausgefunden wird. All dies sind Features, die für eine Kundennummer durchaus nicht uninteressant sind. Aber dein komplizierter Aufbau sieht einfach nur schick aus, hat aber keinen technischen Mehrwert.

Eventuell ist es sogar angebracht, deine Kundennummer aus zwei IDs (nämlich die des Menschen und die der zugehörigen Firma) zu kombinieren.

- Sven Rautenberg

--
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|