Compartilhar via


Cenário de produto

Este tópico dá detalhes sobre as informações de produto representadas no banco de dados de exemplo AdventureWorks; uma lista de tabelas relacionadas a produtos e consultas de exemplo que demonstram relações comuns entre tabelas.

Visão geral do produto

Como uma empresa fabricante de bicicletas, a Adventure Works Cycles tem as seguintes quatro linhas de produto:

  • Bicicletas fabricas na empresa Adventure Works Cycles.

  • Componentes de bicicleta que consistem em peças de reposição, como assemblies de rodas, pedais ou freio.

  • Adornos de bicicleta adquiridos de fornecedores para revenda aos clientes da Adventure Works Cycles.

  • Acessórios de bicicleta adquiridos de fornecedores para revenda aos clientes da Adventure Works Cycles.

Tabelas de produtos

A tabela a seguir contém uma breve descrição dos dados armazenados nas tabelas relacionadas ao produto.

Schema.Table

Contém este tipo de conteúdo

Comentário

Production.BillOfMaterials

Lista de todos os componentes usados para fabricar bicicletas e subassemblies de bicicleta.

A coluna ProductAssemblyID representa o produto pai ou principal, e ComponentID representa o produto filho ou individual, peças usadas para construir o assembly pai.

Production.Culture

Idiomas usados em descrições de produto traduzidas.

As descrições de produto estão disponíveis em árabe, inglês, francês, hebreu, chinês simplificado e tailandês.

Production.Location

Lista dos locais dentro de Adventure Works Cycles em que produtos e peças são armazenados como inventário. Por exemplo, a pintura é armazenada tanto no local de Armazenamento de Pintura do depósito como no centro de trabalho de fabricação, a Loja de Pintura, onde os quadros de bicicleta são pintados.

 

Production.Product

Informações sobre cada produto vendido por Adventure Works Cycles ou usado para fabricar bicicletas Adventure Works Cycles e componentes de bicicleta.

A coluna FinishedGoodsFlag indica se o produto está vendido. Os produtos não vendidos são componentes de um produto vendido. Por exemplo, uma bicicleta seria vendida, mas a folha de metal usada para criar o quadro de bicicleta não seria.

Production.ProductCategory

Classificação mais geral de produtos. Por exemplo, bicicleta ou acessório.

 

Production.ProductCostHistory

Custo de produtos no decorrer do tempo.

 

Production.ProductDescription

Descrição completa de produtos em vários idiomas.

As descrições de produto são fornecidas em árabe, inglês, francês, hebreu, chinês simplificado e tailandês.

Production.ProductInventory

Nível de inventário dos produtos por suas localizações. Consulte o Production.Location mencionado previamente.

 

Production.ProductListPriceHistory

Lista de preços de produtos no decorrer do tempo.

 

Production.ProductModel

Modelos de produto associados a produtos. Por exemplo, quadros de Mountain-100 ou LL Touring.

A coluna CatalogDescription contém informações adicionais sobre o produto, usando o tipo de dados xml. A coluna Instructions contém instruções sobre fabricação de produto, usando o tipo de dados xml.

ProductModelProductDescriptionCulture

Referência cruzada entre modelos de produto, descrições de produto e os idiomas nos quais a descrição foi localizada.

 

Production.ProductPhoto

Imagens de produtos vendidos por Adventure Works Cycles.

As imagens são armazenadas com o tipo de dados varbinary(max).

Production.ProductReview

Análises de produtos Adventure Works Cycles feitas por clientes.

 

Production.ProductSubcategory

Subcategorias de categorias de produto. Por exemplo, Mountain, Road e Touring são subcategorias da categoria Bicicleta.

 

Exemplos

Você pode usar as consultas a seguir para exibir dados de produto e se familiarizar com as relações da tabela de produtos.

A. Exibindo produtos por categoria, subcategoria e modelo

O exemplo a seguir lista todos os produtos por categoria, subcategoria e modelo. Produtos não categorizados não são incluídos. Para incluir todos os produtos, altere a junção em ProductCategory para uma junção completa.

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. Exibindo descrições de produto por modelo de produto

Descrições de produto são criadas para todos os modelos de produto. Todas as descrições são disponibilizadas em vários idiomas. O exemplo a seguir exibe as descrições de produto em cada um dos idiomas.

ObservaçãoObservação

Alguns idiomas talvez não sejam exibidos corretamente, exceto se os arquivos complementares de suporte a idiomas da Ásia oriental e de script complexo tiverem sido instalados. Para instalar esses arquivos, consulte a documentação do Windows em Opções regionais e de idiomas.

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. Exibindo lista de materiais de nível único para produto pai

O exemplo a seguir exibe todos os componentes usados para criar um produto pai específico: 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