Der Martin: Wie kann ich automatisiert über viele Tabellen suchen?

Beitrag lesen

Hi,

es handelt sich dabei um eine Art technische Dokumentation, es sind also keine Bewegungsdaten, sondern Informationen darüber, welches Produkt als welchen Einzelteilen besteht und wieviel ein Austausch eines Einzelteils maximal kosten wird (Listenpreis).

also eher eine Art Materialstückliste mit Einzelteilpreisen.

Nehmen wir als Beispiel Schränke. Die Firma bietet 300 verschiedene Schränke an, alle Schränke haben Einzelteile, die bei allen identisch sind (z.B. Tür-Befestigungen), andere Teile sind nicht überall vertreten (z.B. Spiegel-Tür oder Innenbeleuchtung). Wieder andere sind Artikel sind nur bei einem einzigen Schrank zu finden (z.B. spezielle Designelemente).

So langsam formt sich ein Bild.

Der Begriff "Artikelnummer" ist in der Tabelle auch ungünstig, "Materialnummer" wäre besser gewesen.

Die beiden Begriffe werden bei meinem Arbeitgeber synonym verwendet.

Ich halte die Struktur für "umständlich", da jedes weitere Produkt bedeutet, dass in der Datenbank ca. 20 weitere Tabellen erstellt werden

HALT! Jetzt muss ich mich Rolf anschließen. Ein Datenmodell, bei dem nur wegen einer Erweiterung des Datenbestands neue Tabellen angelegt werden, ist ein Rohrkrepierer. Da sollten nur neue Datensätze in vorhandene Tabellen eingefügt oder angehängt werden.

Für mich stellt sich das System sowieso schon als nur eine Tabelle dar. Die hätte dann im Minimalentwurf etwa folgende Spalten:

Bedeutung Datentyp Bemerkung[1]
ID Zahl unique, autoincrement
Materialnummer String kann also auch alphanumerisch sein
Klartextbezeichnung String
Bestandteil von Zahl ID des übergeordneten Materials
Gültig ab Datum
Preis Zahl

Über die Spalte Bestandteil von können listen- und baumartige Materialhierarchien realisiert werden, und die Datumsspalte Gültig ab erlaubt es, dass jederzeit Materialeigenschaften (z.B. der Preis) geändert werden können, indem einfach ein neuer Datensatz für dieselbe Materialnummer, aber mit einem jüngeren Gültig ab-Datum angehängt wird. Der vorherige bleibt für historische Betrachtungen verfügbar, aber bei einer regulären aktuellen Abfrage darf von jeder Materialnummer nur der Eintrag mit dem jüngsten Datum berücksichtigt werden.

Mag sein, dass eure tatsächliche Datenstruktur noch etwas mehr hat oder braucht, aber so vom Ansatz her ...

Immer eine Handbreit Wasser unterm Kiel
 Martin

--
Wenn ich den See seh, brauch ich kein Meer mehr.

  1. Verdammt, lässt die Markdown-Syntax das linksbündige Ausrichten mit einem Doppelpunkt (also |:Text|:Text) in Kopfzellen nicht zu? ↩︎