Aufbau einer Artikelnummer, Datenbank Experten gefragt?
Hallo,
mich interessiert der Aufbau einer Artikelnummer.
Angenommen ich habe einen baugleichen Regenschirm in der Farbe "Blau", "Grün" und "Schwarz". Dann noch eine gleiche Getränkeflasche in der Größe "1L" und "2L".
Welche Variante wäre für eine Artikelnummer korrekt?
1.) Variante:
Regenschirm Blau: 1001_blau
Regenschirm Grün: 1001_gruen
Regenschirm Schwarz: 1001_schwarz
Flasche 1 L = 1002_1l
Flasche 2 L = 1002_2l
oder
Variante 2.)
Regenschirm Blau: 1001
Regenschirm Grün: 1002
Regenschirm Schwarz: 1003
Flasche 1 L = 1004
Flasche 2 L = 1005
Was ist eure Meinung? IT-/Datenbank Experten sind gefragt :)
5 Stimmen
5 Antworten
Wenn der Primärschlüsssel/Artikelnummer in der Datenbank ein Integer ist, kann er nur numerisch sein und es wäre Variante 2.
Wenn der Primärschlüsssel der Datenbank unabhängig der Artikelnummer ist, kann man diese auch alphanumerisches bestalten und sowohl Variante 1 als auch 2 ermöglichen.
Kommt meinermeinung nach also auf den Aufbau der Datenbank an, welche Variante verwendet wird.
Zahlen, also Typ integer sollte man nur verwenden, wenn man damit auch rechnen will. Ich werde für eine Artikelnummer niemals Datentyp integer verwenden, da man dann nie z. B. eine führende 0 haben kann und es niemals eine Artikelnummer "größer" 32767 geben kann (Wertebereich von integer). Auch ein String Feld kann Primaerschluessel sein.
Kommt drauf an. Am einfachsten wäre Variante 2 mit Primärschlüsssel = Artikelnummer. Dadurch hat die Artikelnummer aber unterschiedliche Längen.
Ich würde beim Neuaufbau eines Artikelstamms die Artikel"nummern" als Strings fester Länge ausgestalten, und dann zeichenweise gruppieren.
Beispiel: GGGAAAAAVVP
Und dann GGG als Warengruppe, AAAAA als Artikelnummer in der Warengruppe, VV für Ausdifferenzierung von Varianten, und P als Prüfziffer. Lässt man nur Zeichen 0-9 zu, hätte man also 1000 mögliche Warengruppen, jede mit 10000 Artikeln drin, und jeder Artikel könnte bis zu 100 Varianten haben. Für die Prüfziffer würde man irgendein gängiges Checksum-Verfahren ansetzen.
Weiterhin solltest Du generell an jedem Artikel ein zweites Schlüsselfeld für die GTIN/EAN vorsehen.
Naja, vom Prinzip her wie Variante2, aber sicher nicht so dicht beieinander, also wäre Regenschirm an sich die 1000x und das x ersetzt die Farbe.
Dann wäre 1001x die Flasche und das x die Farbe. So könnte man die Farben einheitlich machen.
Aus Sicherheitsgründen würde ich dafür sorgen, dass ähnliche Artikel eine stark unterschiedliche Artikelnummer bekommen. Also mit irgendeiner Hash-Funktion.
Drei oder vier Stellen für die Kategorie und dann ein oder zwei Stellen für die Detailbeschreibung, also
100001
100002
100002
200001 usw.
Welche Variante würdest du nehmen, wenn die Datenbank neu aufgebaut wird?