Heiner Kücker

Eigenschaftsorientierte Artikelsystematik

Home

Java-Seite

Alaska-XBase++-Seite

Projekte

Philosophien
Techniken


Konzepte

   Artikelsystematik

   Semantisches_Netz

   Flexible_Columns

   Weiterentwicklung_Java

   Fehlerquellen

   Längencodierung

   Encoding

   Programming_by_Contract

   TimelineStructure
   Datenstruktur für
   Kalender oder
   Terminplaner

Sudoku

Kontakt /
Impressum


Links

SiteMap





Letzte Aktualisierung:
02.12.2001

Eigenschaftsorientierte Artikelsystematik

Dieses Konzept habe ich während der Einführung eines PPS-Systems aufgrund der Schwierigkeiten mit dem Artikelstamm entwickelt. Es wurde aber nicht implementiert.

alter Zustand

In althergebrachten Artikelnummernsystemen werden die Artikel durch Dezimalklassifikation unterteilt:

ArtikelnummerBezeichnung
1000xxxSchrauben
2000xxxMuttern
3000xxxUnterlegscheiben


Üblicherweise werden Zehnergruppen der Schlüsselnummern für jeweils eine Artikelsorte freigehalten:

ArtikelnummerBezeichnung
xxxxx01Wandplatte 2100 x 100
xxxxx02Wandplatte 2100 x 200
xxxxx03Wandplatte 2100 x 300
xxxxx04Wandplatte 2100 x 400
xxxxx05Wandplatte 2100 x 500
xxxxx06Wandplatte 2100 x 600
xxxxx07Wandplatte 2100 x 700
xxxxx11Wandplatte 2300 x 100
xxxxx12Wandplatte 2300 x 200
xxxxx13Wandplatte 2300 x 300
xxxxx14Wandplatte 2300 x 400
xxxxx15Wandplatte 2300 x 500
xxxxx16Wandplatte 2300 x 600
xxxxx17Wandplatte 2300 x 700


Wenn jetzt auf Kundenwunsch Wandplatten mit anderen Maßen, Wärmedämmeigenschaften, Feuerschutz usw. dazukommen, kann man diese in der Artikelnummernsystematik nicht mehr unterbringen.



Lösungsvorschlag Eigenschaftsorientierte Artikelsystematik

Die Artikel werden durch ihre Eigenschaften charachterisiert:

Artikelart:Schraube
Durchmesser:10 Millimeter
Länge:100 Millimeter
Gewinde:metrisch
Korrosionsschutz:galvanisch verzinkt


So können Artikel von den bisherigen abgeleitet (modifiziert) werden und beliebige Artikel hinzugefügt werden.

Der Artikelstamm entspricht einer Baumstruktur:

Schraube
  Durchmesser: 3 Millimeter
  Durchmesser: 4 Millimeter
  Durchmesser: 5 Millimeter
  Durchmesser: 6 Millimeter
  Durchmesser: 8 Millimeter
  Durchmesser: 10 Millimeter
  Durchmesser: 12 Millimeter
Mutter
  Durchmesser: 3 Millimeter
  Durchmesser: 4 Millimeter
  Durchmesser: 5 Millimeter
  Durchmesser: 6 Millimeter
  Durchmesser: 8 Millimeter
  Durchmesser: 10 Millimeter
  Durchmesser: 12 Millimeter
Unterlegscheibe
  Durchmesser: 3 Millimeter
  Durchmesser: 4 Millimeter
  Durchmesser: 5 Millimeter
  Durchmesser: 6 Millimeter
  Durchmesser: 8 Millimeter
  Durchmesser: 10 Millimeter
  Durchmesser: 12 Millimeter


Die Hierarchie im Baum ergibt sich aus der Reihenfolge, in der die Eigenschaften aufgeführt sind.

Artikelart:Schraube1. Kriterium
Durchmesser:10 Millimeter2. Kriterium
Länge:100 Millimeter3. Kriterium
Gewinde:metrisch4. Kriterium
Korrosionsschutz:galvanisch verzinkt5. Kriterium


Als Artikelnummer zum eindeutigen Identifizieren wird eine fortlaufende Nummer (Primary-Key) verwendet, die einfach fortlaufend mit jedem neu eingetragenen Artikel vergeben wird.

In der Baumstruktur kann ein bestimmter Artikel durch Drill-Down gesucht werden.

Denkbar wäre auch ein Tauschen der Eigenschaftskriterien zum Gruppieren zusammengehöriger Artikel.

Durchmesser: 3 Millimeter
  Schraube
  Mutter
  Unterlegscheibe
Durchmesser: 4 Millimeter
  Schraube
  Mutter
  Unterlegscheibe
Durchmesser: 5 Millimeter
  Schraube
  Mutter
  Unterlegscheibe
Durchmesser: 6 Millimeter
  Schraube
  Mutter
  Unterlegscheibe
Durchmesser: 8 Millimeter
  Schraube
  Mutter
  Unterlegscheibe
Durchmesser: 10 Millimeter
  Schraube
  Mutter
  Unterlegscheibe
Durchmesser: 12 Millimeter
  Schraube
  Mutter
  Unterlegscheibe


Weiterhin könnte mit Links zu jeweils anderen Artikeln gearbeitet werden.

Die verwendeten Maßeinheiten und ihre Umrechnungsmöglichkeiten sollten auch als Constraints und zur Verknüpfungsauflösung (wenn Artikel nicht mit gewünschter Maßeinheit gefunden wird, dann mit den kompatiblen Maßeinheiten weitersuchen) gespeichert werden.

Implementierung

Heute würde man eine solche Artikeldatenbank in XML modellieren.

Damals schwebte mir eine Implementierung in XBase vor.

FeldnameFeldtypFeldlängeBemerkung
KEY_NRNum20Artikelnummer
PROPERTIESMemo Eigenschaften als Text codiert


Die Properties sollten jeweils als Textzeile in einem Textfeld gespeichert werden:

<eigenschaft> : <datentyp> <wert> <masseinheit>

Als Datentypen wären Zahl, String, Boolean, Datum, Zeit sowie selbstdefinierte Typen denkbar.

Der Aufbau des Baumes geschieht mit Hilfe eines Index:

 INDEX ON getPropertiesIndexKey()

Die Funktion getPropertiesIndexKey() liefert einen Schlüssel-String zum Indizieren des Artikelstammes

Beispiel