Produktszenario

Dieses Thema enthält Details über die in der AdventureWorks-Beispieldatenbank dargestellten Produktinformationen, eine Liste produktionsgestützter Tabellen sowie Beispielabfragen, die häufig vorkommende Beziehungen zwischen Tabellen veranschaulichen.

Produktübersicht

Als Fahrradhersteller bietet Adventure Works Cycles die folgenden vier Produktgruppen an:

  • Fahrräder, die vom Unternehmen Adventure Works Cycles gefertigt werden.

  • Fahrradteile, bei denen es sich um Verschleißteile handelt, wie z. B. Räder, Pedalen oder Bremseinrichtungen.

  • Fahrradbekleidung, die von anderen Herstellern zum Wiederverkauf an Adventure Works Cycles-Kunden erworben wird.

  • Fahrradzubehör, das von anderen Herstellern zum Wiederverkauf an Adventure Works Cycles-Kunden erworben wird.

Produkttabellen

Die folgende Tabelle enthält eine kurze Beschreibung der in den Produkttabellen gespeicherten Daten.

Schema.Table

Inhalt

Kommentar

Production.BillOfMaterials

Eine Liste der zur Fertigung von Fahrrädern und Fahrradhalbfabrikaten verwendeten Bauteile.

Die ProductAssemblyID-Spalte stellt das übergeordnete oder primäre Produkt dar, während die ComponentID-Spalte die untergeordneten Teile bzw. Einzelteile zur Montage der übergeordneten Baugruppe enthält.

Production.Culture

Die in den lokalisierten Produktbeschreibungen verwendeten Sprachen.

Produktbeschreibungen sind in den Sprachen Arabisch, Englisch, Französisch, Hebräisch, Vereinfachtes Chinesisch und Thailändisch verfügbar.

Production.Location

Eine Liste der Standorte in Adventure Works Cycles, an denen Produkte und Teile als Lagerteile gespeichert werden. So werden beispielsweise Farben und Lacke sowohl am Standort Farbenlager im Warenlager als auch am Arbeitsplatz Lackierung, an dem die Fahrradrahmen lackiert werden, gespeichert.

 

Production.Product

Informationen über jedes von Adventure Works Cycles verkaufte oder zur Fertigung von Adventure Works Cycles-Fahrrädern und -Fahrradteilen verwendete Produkt.

In der FinishedGoodsFlag-Spalte wird angegeben, ob ein Produkt verkauft wurde. Produkte, die nicht verkauft werden, sind Bauteile eines Produkts, das verkauft wird. So wird beispielsweise ein Fahrrad verkauft, während das für den Fahrradrahmen erforderliche Blech nicht verkauft wird.

Production.ProductCategory

Die allgemeinste Produktklassifizierung. Beispiele sind Fahrrad oder Zubehör.

 

Production.ProductCostHistory

Die Produktkosten im Verlauf der Zeit.

 

Production.ProductDescription

Eine vollständige Produktbeschreibung in verschiedenen Sprachen.

Produktbeschreibungen werden in den Sprachen Arabisch, Englisch, Französisch, Hebräisch, Vereinfachtes Chinesisch und Thailändisch angeboten.

Production.ProductInventory

Der Lagerbestand von Produkten nach ihrem Standort. Siehe Production.Location weiter oben.

 

Production.ProductListPriceHistory

Der Listenpreis von Produkten im Verlauf der Zeit.

 

Production.ProductModel

Den Produkten zugeordnete Produktmodelle. Beispiele sind Mountain-100 oder LL Touring Frame.

Die CatalogDescription-Spalte enthält zusätzliche Produktinformationen bei Verwendung des xml-Datentyps. Die Instructions-Spalte enthält Anweisungen zur Produktfertigung bei Verwendung des xml-Datentyps.

ProductModelProductDescriptionCulture

Querverweise zwischen Produktmodellen, Produktbeschreibungen und den Sprachen, in die die Beschreibungen lokalisiert wurden.

 

Production.ProductPhoto

Abbildungen der von Adventure Works Cycles verkauften Produkte.

Die Bilder werden mithilfe des varbinary(max)-Datentyps gespeichert.

Production.ProductReview

Kundenbewertungen von Adventure Works Cycles-Produkten.

 

Production.ProductSubcategory

Unterkategorien von Produktkategorien. So sind beispielsweise Mountainbikes, Cityräder und Tourenräder Unterkategorien der Kategorie Fahrrad.

 

Beispiele

Mithilfe der folgenden Abfragen können Sie Produktdaten anzeigen und sich mit den Beziehungen innerhalb von Produkttabellen vertraut machen.

A. Anzeigen von Produkten nach Kategorie, Unterkategorie und Modell

Im folgenden Beispiel werden alle Produkte nach Kategorie, Unterkategorie und Modell aufgelistet. Nicht kategorisierte Produkte sind nicht enthalten. Wenn alle Produkte angezeigt werden sollen, ändern Sie die Verknüpfung für ProductCategory zu einer vollständigen Verknüpfung.

USE AdventureWorks;
GO
SELECT PC.Name AS Category, PSC.Name AS Subcategory,
    PM.Name AS Model, P.Name AS Product
FROM Production.Product AS P
    FULL JOIN Production.ProductModel AS PM ON PM.ProductModelID = P.ProductModelID
    FULL JOIN Production.ProductSubcategory AS PSC ON PSC.ProductSubcategoryID = P.ProductSubcategoryID
    JOIN Production.ProductCategory AS PC ON PC.ProductCategoryID = PSC.ProductCategoryID
ORDER BY PC.Name, PSC.Name ;
GO

B. Anzeigen von Produktbeschreibungen nach Produktmodell

Produktbeschreibungen werden für jedes einzelne Produktmodell erstellt. Jede Beschreibung ist in verschiedenen Sprachen verfügbar. Im folgenden Beispiel werden die Produktbeschreibungen in den einzelnen Sprachen angezeigt.

HinweisHinweis

Einige Sprachen werden nur dann richtig angezeigt, wenn die unterstützenden Dateien für zusätzliche Sprachen mit komplexen Schriftzeichen und ostasiatische Sprachen installiert wurden. Informationen zur Installation dieser Dateien finden Sie in der Windows-Dokumentation unter den Regions- und Sprachoptionen.

USE AdventureWorks;
GO
SELECT PM.ProductModelID, PM.Name AS [Product Model], Description, PL.CultureID, CL.Name AS Language
FROM Production.ProductModel AS PM 
    JOIN Production.ProductModelProductDescriptionCulture AS PL 
        ON PM.ProductModelID = PL.ProductModelID
    JOIN Production.Culture AS CL ON CL.CultureID = PL.CultureID
    JOIN Production.ProductDescription AS PD 
        ON PD.ProductDescriptionID = PL.ProductDescriptionID
ORDER BY PM.ProductModelID ;
GO

C. Anzeigen einer einstufigen Stückliste für ein übergeordnetes Produkt

Im folgenden Beispiel werden alle Bauteile angezeigt, die zum Erstellen eines bestimmten übergeordneten Produkts verwendet werden: ProductAssemblyID

USE AdventureWorks;
GO
WITH Parts(AssemblyID, ComponentID, PerAssemblyQty, EndDate, ComponentLevel) AS
(
    SELECT b.ProductAssemblyID, b.ComponentID, b.PerAssemblyQty,
        b.EndDate, 0 AS ComponentLevel
    FROM Production.BillOfMaterials AS b
    WHERE b.ProductAssemblyID = 800
          AND b.EndDate IS NULL
    UNION ALL
    SELECT bom.ProductAssemblyID, bom.ComponentID, p.PerAssemblyQty,
        bom.EndDate, ComponentLevel + 1
    FROM Production.BillOfMaterials AS bom 
        INNER JOIN Parts AS p
        ON bom.ProductAssemblyID = p.ComponentID
        AND bom.EndDate IS NULL
)
SELECT AssemblyID, ComponentID, Name, PerAssemblyQty, EndDate,
        ComponentLevel 
FROM Parts AS p
    INNER JOIN Production.Product AS pr
    ON p.ComponentID = pr.ProductID
ORDER BY ComponentLevel, AssemblyID, ComponentID;
GO