| 

.NET C# Java Javascript Exception

Frage #F436: MSSQL 2008 Hierarchie abbilden

Diese Frage hat bisher 4 Versionen. Frage #F436: MSSQL 2008 Hierarchie abbilden


Version 4
24.11.2009 15:50:13
Dies ist die aktuelle Version
MSSQL 2008 Hierarchie abbilden
Edit: Ich hab die Frage mal anders gestellt. Hoffe jetzt ist mein Ziel verständlicher.

Ich möchte eine Art Produkt/Materialdatenbank abbilden.

Jedes Produkt besteht aus N Materialien wobei jedes Material selber auch wieder als Produkte betrachtet wird welches aus N Materialien besteht.

Beispiel:



Um das Produkt 1 Herzustellen, brauche ich das Produkt 2 sowie 3 und 4. Da ich nicht für jedes Produkt und zwischenprodukt die Preis einzeln ausrechnen möchte, möchte ich die Preis pro Ausgangsmaterial eintragen.

1 kg Aluminium = 100 EURO
1 kg PVC-Granulat = 123 EURO
100 Stück Schrauben Typ 32 = 14 EURO
100 Stück Schrauben Typ 43 = 16 EURO
100 Stück Elektroplatinen = 866 EUO
...

Aus dem 2kg Aluminum und dem 1kg PVC Granulat stell ich nun 1 Gehäuse her. Aus 1 Gehäuse + 50 Schrauben + 5 Elektroplatinen kann ich eine Steuereinheit bauen. Aus 5 Steuereinheiten + Ein anderes Gehäuse + Motor + diverse anderes Zeugs stell ich mein Endprodukt her.

Die Frage ist, wie ich das mittels HierarchyId oder Common Table Expressions abbilde.

Zeil ist es, mittels einer SQL-Abfrage zu sagen:
1. Selektiere alle Materialien für Produkt X und gib mir die Gesammtmenge der Matierialien sowie der Kosten dafür aus.
Selectiere alle Materialien für Produkt X und gib mir Name, Preis pro VPE etc. aus für jedes einzelene Zwischenprodukt beginnend von ganz unten aus.

Jedes der 4000 Produkt besteht aus X zwischen Produkten oder ist selbst in einem Produkt enthalten.

Als Beispiel, das Produkt "Werkzeugkoffer" besteht aus der Einzelprodukten "Schraubenzieher X1","Schraubenzieher X2",.., "Maulschlüssel 1", "Maulschlüssel 2",..
Für die Herstellung für jeden Schraubenzieher brauch einen Griff. Der Griff selbst ist wieder ein Produkt das ich für verschiedene Zwecke brauchen kann (z.B. als Griff für einen Schraubenzieher oder als Ersatzteil).

Das geht solange bis wir beim Metall, PVC und allem anderen benötigten ankommen.
Themen:
Floyd 10,4k 3 9
Version 3
24.11.2009 15:50:13
MSSQL 2008 N-M Hierarchie abbilden
Ich möchte eine N-M Hierachie in der Datenbank speichern. Seit 2008 gibt es ja den HierarchyId Datentyp. In den Beispielen die ich bisher gefunden haben, wird dieser jedoch nur im Zusammenhang mit 1-M Beziehungen verwendet. Kann man mit HierarchyId Datentyp auch N-M Bezeihungen speichern?

Ziel:



Zeil ist es, eine Art Produkt/Materialdatenbank abzubilden.
Für verschiedene Produkte brauch ich häufig die selben Materialen.
Nehmen wir an wir sind ein Elektro-Artikelhersteller.
Exemplarisch nehmen wir mal 3 Produkte.
Produkt 1 ist ein Akkubohrer, Produkte 2 ist eine Stichsäge und Produkt 3 eine Elektrische Bohrmaschiene.

Für alle 3 Produkte brauch ich ein andere Gehäuse und ein anderes Getriebe.
Jedoch kann ich den Antriebsmotor der Stichsäge auch für die Bohrmaschiene verwenden, nicht jedoch für den Akkubohrer. Außerdem brauch ich für den Akkubohrer und die Stichsäge 12 Schrauben des Typs 34. Für die Bohrmaschiene jedoch 8 Schrauben des Typs 52.
Für die Gehäuse brauch ich ebenfalls Schrauben des Typs 34 und 52.

Ich will jetzt eine Materialliste für jedes Produkt zusammenstellen und deren Preise errechnen.

Akkubohrer:
1 x Gehäuse Typ 1
5 x Schraube Typ 34
1 x Getriebe Typ 1
2 x Schraube Typ 52
12 x Schrauben Typ 34
1 x Motor Typ 1
..

Entsprechend dies auch für alle anderen Produkte.

Wie kann ich das Darstellen? Die Beispiel zur HierachyId gaben eine solche Sturktur nicht her. Sollte die HierachieID nicht gehen, könnnte man Common Table Expressions verwenden? Hier sind bei Beispiele aber noch spährlicher gesäht :D

Nachtrag: Wichtig ist auch, das ein Produkte gleichfalls ein Zwischenprodukte für ein anderes Produkt sein kann.

Im Prinzip haben wir also 2 Ebene. Produkt, besteht aus anderemProdukt1 und anderem Produkt3 wobei anderemProdukt1 auch wieder aus anderemProdukt4 aus anderemProdukt5 besteht. und so weiter.
Themen:
Floyd 10,4k 3 9
Version 2
24.11.2009 15:46:08
MSSQL 2008 N-M Hierarchie abbilden
Ich möchte eine N-M Hierachie in der Datenbank speichern. Seit 2008 gibt es ja den HierarchyId Datentyp. In den Beispielen die ich bisher gefunden haben, wird dieser jedoch nur im Zusammenhang mit 1-M Beziehungen verwendet. Kann man mit HierarchyId Datentyp auch N-M Bezeihungen speichern?

Ziel:


Zeil ist es, eine Art Produkt/Materialdatenbank abzubilden.
Für verschiedene Produkte brauch ich häufig die selben Materialen.
Nehmen wir an wir sind ein Elektro-Artikelhersteller.
Exemplarisch nehmen wir mal 3 Produkte.
Produkt 1 ist ein Akkubohrer, Produkte 2 ist eine Stichsäge und Produkt 3 eine Elektrische Bohrmaschiene.

Für alle 3 Produkte brauch ich ein andere Gehäuse und ein anderes Getriebe.
Jedoch kann ich den Antriebsmotor der Stichsäge auch für die Bohrmaschiene verwenden, nicht jedoch für den Akkubohrer. Außerdem brauch ich für den Akkubohrer und die Stichsäge 12 Schrauben des Typs 34. Für die Bohrmaschiene jedoch 8 Schrauben des Typs 52.
Für die Gehäuse brauch ich ebenfalls Schrauben des Typs 34 und 52.

Ich will jetzt eine Materialliste für jedes Produkt zusammenstellen und deren Preise errechnen.

Akkubohrer:
1 x Gehäuse Typ 1
5 x Schraube Typ 34
1 x Getriebe Typ 1
2 x Schraube Typ 52
12 x Schrauben Typ 34
1 x Motor Typ 1
..

Entsprechend dies auch für alle anderen Produkte.

Wie kann ich das Darstellen? Die Beispiel zur HierachyId gaben eine solche Sturktur nicht her. Sollte die HierachieID nicht gehen, könnnte man Common Table Expressions verwenden? Hier sind bei Beispiele aber noch spährlicher gesäht :D

Nachtrag: Wichtig ist auch, das ein Produkte gleichfalls ein Zwischenprodukte für ein anderes Produkt sein kann.

Im Prinzip haben wir also 2 Ebene. Produkt, besteht aus anderemProdukt1 und anderem Produkt3 wobei anderemProdukt1 auch wieder aus anderemProdukt4 aus anderemProdukt5 besteht. und so weiter.
Themen:
Floyd 10,4k 3 9
Version 1
24.11.2009 15:20:19
MSSQL 2008 N-M Hierarchie abbilden
Ich möchte eine N-M Hierachie in der Datenbank speichern. Seit 2008 gibt es ja den HierarchyId Datentyp. In den Beispielen die ich bisher gefunden haben, wird dieser jedoch nur im Zusammenhang mit 1-M Beziehungen verwendet. Kann man mit HierarchyId Datentyp auch N-M Bezeihungen speichern?

Ziel:


Zeil ist es, eine Art Produkt/Materialdatenbank abzubilden.
Für verschiedene Produkte brauch ich häufig die selben Materialen.
Nehmen wir an wir sind ein Elektro-Artikelhersteller.
Exemplarisch nehmen wir mal 3 Produkte.
Produkt 1 ist ein Akkubohrer, Produkte 2 ist eine Stichsäge und Produkt 3 eine Elektrische Bohrmaschiene.

Für alle 3 Produkte brauch ich ein andere Gehäuse und ein anderes Getriebe.
Jedoch kann ich den Antriebsmotor der Stichsäge auch für die Bohrmaschiene verwenden, nicht jedoch für den Akkubohrer. Außerdem brauch ich für den Akkubohrer und die Stichsäge 12 Schrauben des Typs 34. Für die Bohrmaschiene jedoch 8 Schrauben des Typs 52.
Für die Gehäuse brauch ich ebenfalls Schrauben des Typs 34 und 52.

Ich will jetzt eine Materialliste für jedes Produkt zusammenstellen und deren Preise errechnen.

Akkubohrer:
1 x Gehäuse Typ 1
5 x Schraube Typ 34
1 x Getriebe Typ 1
2 x Schraube Typ 52
12 x Schrauben Typ 34
1 x Motor Typ 1
..

Entsprechend dies auch für alle anderen Produkte.

Wie kann ich das Darstellen? Die Beispiel zur HierachyId gaben eine solche Sturktur nicht her. Sollte die HierachieID nicht gehen, könnnte man Common Table Expressions verwenden? Hier sind bei Beispiele aber noch spährlicher gesäht :D
Themen:
Floyd 10,4k 3 9